如何在 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笔。
  • 第 5 个小时内共成交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
  • 第 5 小时的平均销量为9

您可以随意按时间对自己的数据框进行分组,并通过修改summary()函数中的指标来计算您想要的任何特定指标。

其他资源

以下教程解释了如何在 R 中执行其他常见操作:

如何在R中按月对数据进行分组
如何在 R 中按周对数据进行分组

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注