gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:28:10 25 4
gpt4 key购买 nike

我有大约 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com