如果这个问题已经在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年)的庞大数据集。我想知道是否有人能够帮助我调整上面的汇总代码,以便我能够在一个特定的年份每天汇总,而不是一次刷卡所有这些?
答案 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)