如何在 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