R 按索引(日期)对多个数据帧的列表求和

标签 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     985

这将继续每个日期一行。

我可以轻松地将 6000 个数据帧放入列表中,或者我可以将其绑定(bind)到单个大数据帧中。我尝试了各种方法,但无法完全实现。

最佳答案

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)

所以all_split是一个包含所有data.frames的列表。这对于将它们与 dplyr::rbind_all 结合起来是必要的(见下文)。 一旦将它们组合起来,您就可以轻松地使用 dplyr 来汇总数据:根据您的情况对它们进行汇总。

实际代码

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

关于R 按索引(日期)对多个数据帧的列表求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25394276/

相关文章:

r - 简化循环计算

r - 使用样本权重的分位数

python - 如何随机选择列表中给定值的索引?

c# - stack.ToList() – 元素顺序?

c# - LINQ 中的聚合与求和性能

r - 如何在 R SQLDF 中聚合字符串?

python - 通过组合两个列表中的值创建第三个列表

javascript - 求和多维数组javascript中的所有整数

c++ - 如何取输入到 C++ 程序中的值的平均值?

r - 如何在 R 包 JuliaConnectoR 中传递 Julia 类型