如何在 R 中查找按日期分组的列的平均值?

r programmingserver side programmingprogramming更新于 2025/4/9 9:37:17

要查找按日期分组的列的平均值,我们可以简单地使用聚合函数。例如,如果我们有一个名为 df 的数据框,其中包含日期列(例如 Date)和数值列(例如 Num),那么我们可以使用以下命令在 Date 列中按日期查找 Num 的平均值 −

aggregate(Num~Date,df,mean)

示例 1

以下代码片段创建了一个示例数据框 −

Date<-
sample(c(as.Date("2021/05/01"),as.Date("2021/05/10"),as.Date("2021/05/15"),as.Date("2021/05/20")),20,replace=TRUE)
Sales<-sample(100:500,20)
df1<-data.frame(Date,Sales)
df1

创建以下数据框

       Date  Sales
1  2021-05-15 221
2  2021-05-10 414
3  2021-05-20 469
4  2021-05-01 101
5  2021-05-20 313
6  2021-05-15 264
7  2021-05-01 302
8  2021-05-01 137
9  2021-05-15 109
10 2021-05-01 126
11 2021-05-20 498
12 2021-05-20 163
13 2021-05-01 446
14 2021-05-20 318
15 2021-05-15 180
16 2021-05-20 291
17 2021-05-10 390
18 2021-05-10 139
19 2021-05-15 337
20 2021-05-20 231

要在上述创建的数据框中找到按日期销售的平均值,请将以下代码添加到上述代码片段中 −

Date<-
sample(c(as.Date("2021/05/01"),as.Date("2021/05/10"),as.Date("2021/05/15"),as.Date("2021/05/20")),20,replace=TRUE)
Sales<-sample(100:500,20)
df1<-data.frame(Date,Sales)
aggregate(Sales~Date,df1,mean)

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

       Date   Sales
1 2021-05-01 222.4000
2 2021-05-10 314.3333
3 2021-05-15 222.2000
4 2021-05-20 326.1429

示例 2

以下代码片段创建了一个示例数据框 −

Date<-
sample(c(as.Date("2021/01/01"),as.Date("2021/02/15"),as.Date("2021/02/22"),as.Date("2021/01/18")),20,replace=TRUE)
Result<-sample(1:50,20)
df2<-data.frame(Date,Result)
df2

创建以下数据框

      Date    Result
1  2021-01-01 40
2  2021-02-22 19
3  2021-01-18 15
4  2021-02-15 39
5  2021-02-15 35
6  2021-02-22  1
7  2021-02-22 18
8  2021-01-18 46
9  2021-01-01 23
10 2021-02-15 50
11 2021-02-22 12
12 2021-02-15 28
13 2021-02-15 48
14 2021-01-18 13
15 2021-02-15 11
16 2021-01-18 27
17 2021-01-01 22
18 2021-02-22 49
19 2021-02-15 45
20 2021-01-18 47

要在上述创建的数据框中按日期查找结果的平均值,请将以下代码添加到上述代码片段中 −

Date<-
sample(c(as.Date("2021/01/01"),as.Date("2021/02/15"),as.Date("2021/02/22"),as.Date("2021/01/18")),20,replace=TRUE)
Result<-sample(1:50,20)
df2<-data.frame(Date,Result)
aggregate(Result~Date,df2,mean)

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

       Date   Result
1 2021-01-01 28.33333
2 2021-01-18 29.60000
3 2021-02-15 36.57143
4 2021-02-22 19.80000

相关文章