วิธีจัดกลุ่มข้อมูลตามเวลาใน r (พร้อมตัวอย่าง)


คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อจัดกลุ่มข้อมูลตามเวลาและดำเนินการรวมใน R:

 library (dplyr)
library (lubridate)

#group by hours in time column and calculate sum of sales
df %>%
  group_by(time=floor_date(time, ' 1 hour ')) %>%
  summarize(sum_sales=sum(sales))

ตัวอย่างนี้จัดกลุ่มค่าตามชั่วโมงลงในคอลัมน์ที่เรียกว่า ชั่วโมง แล้วคำนวณผลรวมของค่าในคอลัมน์ ยอดขาย ในแต่ละชั่วโมง

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: จัดกลุ่มข้อมูลตามเวลาใน R

สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ซึ่งแสดงจำนวนยอดขายที่เกิดขึ้นในช่วงเวลาต่างๆ ของวันสำหรับร้านค้า:

 #create data frame
df <- data. frame (time=as. POSIXct (c('2022-01-01 01:14:00', '2022-01-01 01:24:15',
                                 '2022-01-01 02:52:19', '2022-01-01 02:54:00',
                                 '2022-01-01 04:05:10', '2022-01-01 05:35:09')),
                 sales=c(18, 20, 15, 14, 10, 9))

#view data frame
df

                 time sales
1 2022-01-01 01:14:00 18
2 2022-01-01 01:24:15 20
3 2022-01-01 02:52:19 15
4 2022-01-01 02:54:00 14
5 2022-01-01 04:05:10 10
6 2022-01-01 05:35:09 9

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อจัดกลุ่มคอลัมน์ เวลา ตามชั่วโมง และคำนวณผลรวมของ ยอดขาย ในแต่ละชั่วโมง:

 library (dplyr)
library (lubridate)

#group by hours in time column and calculate sum of sales
df %>%
  group_by(time=floor_date(time, ' 1 hour ')) %>%
  summarize(sum_sales=sum(sales))

`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 4 x 2
  time sum_sales
                    
1 2022-01-01 01:00:00 38
2 2022-01-01 02:00:00 29
3 2022-01-01 04:00:00 10
4 2022-01-01 05:00:00 9

จากผลลัพธ์เราจะเห็นได้ว่า:

  • ชั่วโมงแรกมียอดขายรวม 38 ครั้ง
  • ชั่วโมงที่สองมียอดขายรวม 29 รายการ
  • ชั่วโมงที่สี่มียอดขายทั้งหมด 10 ครั้ง
  • มียอดขายทั้งหมด 9 รายการในช่วงชั่วโมงที่ห้า

โปรดทราบว่าเราสามารถดำเนินการรวมกลุ่มอื่นได้

ตัวอย่างเช่น เราสามารถคำนวณจำนวน ยอดขายเฉลี่ย ต่อชั่วโมงได้:

 library (dplyr)
library (lubridate)

#group by hours in time column and calculate mean of sales
df %>%
  group_by(time=floor_date(time, ' 1 hour ')) %>%
  summarize(mean_sales=mean(sales))

`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 4 x 2
  time mean_sales
                     
1 2022-01-01 01:00:00 19  
2 2022-01-01 02:00:00 14.5
3 2022-01-01 04:00:00 10  
4 2022-01-01 05:00:00 9

จากผลลัพธ์เราจะเห็นได้ว่า:

  • ยอดขายเฉลี่ยในชั่วโมงแรกคือ 19
  • ยอดขายเฉลี่ยในชั่วโมงที่สองคือ 14.5
  • ยอดขายเฉลี่ยในชั่วโมงที่สี่คือ 10
  • ยอดขายเฉลี่ยในชั่วโมงที่ห้าคือ 9

คุณสามารถจัดกลุ่มกรอบข้อมูลของคุณเองตามเวลาได้ตามใจชอบ และคำนวณหน่วยวัดเฉพาะใดๆ ที่คุณต้องการโดยแก้ไขหน่วยวัดในฟังก์ชัน summary()

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน R:

วิธีจัดกลุ่มข้อมูลตามเดือนใน R
วิธีจัดกลุ่มข้อมูลตามสัปดาห์ใน R

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

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