按特定年份汇总

时间:2015-02-26 19:01:36

标签: r aggregate

如果这个问题已经在SO上处理过,请道歉,但我现在似乎无法找到快速解决方案。

我正在尝试按特定年份汇总数据集。我的数据框架包含10年期间的每小时气候数据。

head(df)
#  day month year hour rain temp pressure wind
#1   1     1 2005    0    0  7.6     1016   15
#2   1     1 2005    1    0  8.0     1015   14
#3   1     1 2005    2    0  7.7     1014   15
#4   1     1 2005    3    0  7.8     1013   17
#5   1     1 2005    4    0  7.3     1012   17
#6   1     1 2005    5    0  7.6     1010   17

要从上述数据集计算每日平均值,我使用此聚合函数

g <- aggregate(cbind(temp,pressure,wind) ~ day + month + year, d, mean)
options(digits=2)

head(g)
#  day month year temp pressure wind
#1   1     1 2005  6.6     1005   25
#2   2     1 2005  6.5     1018   25
#3   3     1 2005  9.7     1019   22
#4   4     1 2005  7.5     1010   25
#5   5     1 2005  7.3     1008   25
#6   6     1 2005  9.6     1009   26

不幸的是,我获得了一个跨越整个10年(2005年至2014年)的庞大数据集。我想知道是否有人能够帮助我调整上面的汇总代码,以便我能够在一个特定的年份每天汇总,而不是一次刷卡所有这些?

2 个答案:

答案 0 :(得分:1)

您可以使用subset

中的aggregate参数
aggregate(cbind(temp,pressure,wind) ~ day + month + year, df, 
                     subset=year %in% 2005:2014, mean)

答案 1 :(得分:0)

Dplyr也做得很好。

library(dplyr)

df %>% 
filter(year==2005) %>% 
group_by(day, month, year) %>% 
summarise_each(funs(mean), temp, pressure, wind)