R按索引对多个数据帧的列表求和(日期)
我有大约6000个数据帧,数据如下:R按索引对多个数据帧的列表求和(日期),r,list,sum,dataframe,R,List,Sum,Dataframe,我有大约6000个数据帧,数据如下: over10 over20 over50 over100 2014-01-02 1 1 0 0 每个数据帧有数百行 我需要按索引(日期)对所有数据帧中的四列求和。结果将是每个日期一行,其中包含合计值。因此,在6000个数据帧之后,结果可能是: over10 over20 over50 over100 2014-01-02 3121 2551 1670
over10 over20 over50 over100
2014-01-02 1 1 0 0
每个数据帧有数百行
我需要按索引(日期)对所有数据帧中的四列求和。结果将是每个日期一行,其中包含合计值。因此,在6000个数据帧之后,结果可能是:
over10 over20 over50 over100
2014-01-02 3121 2551 1670 985
这将继续进行,每个日期一行
我可以轻松地将6000个数据帧放入一个列表中,也可以将rbind放入一个大数据帧中。我尝试过各种方法,但都没有达到目的。使用@0提供的数据集
aggregate(all[,2:5], by=list(all$date), sum)
或
dplyr
方法是:
创建示例数据
set.seed(42)
all <- data.frame(date=sample(seq(as.Date("2000/1/1"), as.Date("2003/1/1"), by = "quarter"),
100,replace=TRUE),
over10 = rbinom(100,50,0.5),
over20 = rbinom(100,50,0.5),
over50 = rbinom(100,50,0.5),
over100 = rbinom(100,50,0.5))
group <- sample(1:5,100,replace=TRUE)
all_split <- split(all, group)
结果:
Source: local data frame [13 x 5]
date over10 over20 over50 over100
1 2000-01-01 220 187 202 205
2 2000-04-01 175 164 173 159
3 2000-07-01 159 171 185 185
4 2000-10-01 168 176 154 182
5 2001-01-01 145 138 150 160
那么日期值是一个行名还是一个实际列呢?@latemail行名,这些都是天生的xtsI还应该提到数据帧的nrows并不都是相等的,它起作用了,我学习了dplyr的一些新功能。顺便说一句,我应该澄清我已经在使用foreach和.combine=“rbind”选项了,所以根本不需要rbind\u。
require(dplyr)
dat <- rbind_all(all_split) # This is a big data.frame with all data
dat %>%
group_by(date) %>%
summarise_each(funs(sum))
Source: local data frame [13 x 5]
date over10 over20 over50 over100
1 2000-01-01 220 187 202 205
2 2000-04-01 175 164 173 159
3 2000-07-01 159 171 185 185
4 2000-10-01 168 176 154 182
5 2001-01-01 145 138 150 160