วิธีจัดกลุ่มข้อมูลตามสัปดาห์ใน r (พร้อมตัวอย่าง)
คุณสามารถใช้ฟังก์ชัน strftime() ในฐาน R พร้อมกับอาร์กิวเมนต์ “ %V ” เพื่อจัดกลุ่มข้อมูลตามสัปดาห์ใน R
ฟังก์ชันนี้ใช้ไวยากรณ์พื้นฐานต่อไปนี้:
df$week_num <- strftime(df$date, format = " %V ")
ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ
ตัวอย่าง: จัดกลุ่มข้อมูลตามสัปดาห์ในหน่วย R
สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ใน R ที่แสดงยอดขายรวมของสินค้าในวันที่ต่างกัน:
#create data frame df <- data. frame (date=as. Date (c('1/8/2022', '1/9/2022', '2/10/2022', '2/15/2022', '3/5/2022', '3/22/2022', '3/27/2022'), '%m/%d/%Y'), sales=c(8, 14, 22, 23, 16, 17, 23)) #view data frame df dirty date 1 2022-01-08 8 2 2022-01-09 14 3 2022-02-10 22 4 2022-02-15 23 5 2022-03-05 16 6 2022-03-22 17 7 2022-03-27 23
เราสามารถใช้โค้ดต่อไปนี้เพื่อเพิ่มคอลัมน์ที่แสดงหมายเลขสัปดาห์ของแต่ละวัน:
#add column to show week number
df$week_num <- strftime(df$date, format = " %V ")
#view updated data frame
df
date sales week_num
1 2022-01-08 8 01
2 2022-01-09 14 01
3 2022-02-10 22 06
4 2022-02-15 23 07
5 2022-03-05 16 09
6 2022-03-22 17 12
7 2022-03-27 23 12
หมายเหตุ : ตามเอกสารประกอบ %V% คำนวณหมายเลขวันที่ดังนี้: “หมายเลขสัปดาห์ของปี (วันจันทร์เป็นวันแรกของสัปดาห์) เป็นทศนิยม [01,53]” หากสัปดาห์ที่มีวันที่ 1 มกราคม มีวันตั้งแต่สี่วันขึ้นไปในปีใหม่ จะถือเป็นสัปดาห์ที่ 1 ไม่เช่นนั้นจะเป็นสัปดาห์สุดท้ายของปีที่แล้วและสัปดาห์ถัดไปคือสัปดาห์ที่ 1″
เมื่อเราสร้างคอลัมน์ใหม่นี้แล้ว เราก็สามารถจัดกลุ่มค่าตามหมายเลขสัปดาห์ได้
ตัวอย่างเช่น เราสามารถใช้โค้ดต่อไปนี้เพื่อคำนวณผลรวมของยอดขาย โดยจัดกลุ่มตามสัปดาห์:
library (dplyr)
#calculate sum of sales, grouped by week
df %>%
group_by(week_num) %>%
summarize(total_sales = sum(sales))
# A tibble: 6 x 2
week_num total_sales
1 01 22
2 06 22
3 07 23
4 09 16
5 12 40
จากผลลัพธ์เราจะเห็นได้ว่า:
- ผลรวมของยอดขายในสัปดาห์ที่ 1 คือ 22
- ผลรวมของยอดขายในสัปดาห์ที่ 6 คือ 22
- ผลรวมของยอดขายในสัปดาห์ที่ 7 คือ 23
และอื่นๆ
นอกจากนี้เรายังสามารถใช้ตัวชี้วัดอื่นเพื่อรวบรวมข้อมูลได้
ตัวอย่างเช่น เราสามารถใช้โค้ดต่อไปนี้เพื่อคำนวณยอดขายเฉลี่ย โดยจัดกลุ่มตามสัปดาห์:
library (dplyr)
#calculate mean of sales, grouped by week
df %>%
group_by(week_num) %>%
summarize(mean_sales = mean(sales))
# A tibble: 5 x 2
week_num mean_sales
1 01 11
2 06 22
3 07 23
4 09 16
5 12 20
จากผลลัพธ์เราจะเห็นได้ว่า:
- ยอดขายเฉลี่ยในสัปดาห์ที่ 1 คือ 11
- ยอดขายเฉลี่ยในสัปดาห์ที่ 6 คือ 22
- ยอดขายเฉลี่ยในสัปดาห์ที่ 7 คือ 23
และอื่นๆ
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีจัดกลุ่มข้อมูลตามเดือนใน R
วิธีแยกปีจากวันที่ใน R
วิธีแยกเดือนจากวันที่ใน R
วิธีจัดเรียง data frame ตามวันที่ใน R