我有一个这样的数据框:
block plot date data
1 1 aug 11.95171507
1 1 aug 18.41451063
1 2 aug 9.506155236
1 2 aug 13.26259947
1 3 aug 17.53616835
1 3 sep 15.40950767
2 1 sep 23.03616678
2 1 sep 17.07067258
2 2 sep 11.58278798
2 2 sep 13.15443304
我想根据块和日期计算绘图中的数据平均值。最终,我希望有5种方法。 谢谢你的帮助。
答案 0 :(得分:5)
可能阻力最小的路径是使用plyr
:
library(plyr)
ddply(yourData, c("block", "date"), summarize, outVal = mean(data))
您可以使用data.table
,aggregate
,by
以及其他许多功能执行类似的操作。花几分钟时间仔细阅读这里的R标签。
答案 1 :(得分:4)
看看aggregate
。我想这就是你想要的。
d <- data.frame(block=c(1,1,1,1,1,1,2,2,2,2), plot=c(1,1,2,2,3,3,1,1,2,2), date=c(rep('aug',5),rep('sep',5)),
data=c(11.95171507, 18.41451063, 9.506155236, 13.26259947, 17.53616835, 15.40950767, 23.03616678,
17.07067258, 11.58278798, 13.15443304))
aggregate(x = d$data, by = list(d$block, d$date), FUN = "mean")
答案 2 :(得分:1)
我们假设您的数据存储在名为&#34; DATA&#34;的数据框中。
> DATA
block plot date data
1 1 1 aug 11.951715
2 1 1 aug 18.414511
3 1 2 aug 9.506155
4 1 2 aug 13.262599
5 1 3 aug 17.536168
6 1 3 sep 15.409508
7 2 1 sep 23.036167
8 2 1 sep 17.070673
9 2 2 sep 11.582788
10 2 2 sep 13.154433
然后我们可以输入以下内容:
> aggregate(DATA$data, list(Block = DATA$block, Date = DATA$date), mean)
Block Date x
1 1 aug 14.13423
2 1 sep 15.40951
3 2 sep 16.21102