วิธีจัดกลุ่มข้อมูลตามสัปดาห์ใน 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *