r 中数据帧中每列的最后 12 行的滚动总和

标签 r rolling-sum

我有一个如下所示的数据框:Data frame

这些列每三个月才有一次数据。对于除第一列之外的所有列,我想要新数据框中最后 12 行的运行总和。我已经使用 for 循环和代码成功完成了此操作:

for (j in 2:3537){
 for (i in 10:415){
  EBIT_total[i,j]<-EBIT[i-9,j]+EBIT[i-6,j]+EBIT[i-3,j]+EBIT[i,j]
  Sales_total[i,j]<-Sales[i-9,j]+Sales[i-6,j]+Sales[i-3,j]+Sales[i,j]
}}

但是,由于列数较多,这需要花费大量时间。

我在互联网上搜索了解决方案,并尝试使用 apply 和 rollapply(来自“zoo”库),但没有任何运气。

希望有人能够提供帮助,提前致谢!

最诚挚的问候拉斯穆斯

最佳答案

试试这个:

library(zoo)
DF <- data.frame(a = 1:25, b = 1:25) # test data

rollapplyr(DF, 10, function(x) sum(x[c(1, 4, 7, 10)]), fill = NA)

# or even shorter

rollapplyr(DF, list(c(-9, -6, -3, 0)), sum, fill = NA)

关于r 中数据帧中每列的最后 12 行的滚动总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44050645/

相关文章:

R:为什么我的 ggplot geom_point() 符号不可见?

java - 如何将 client_protocol 传递给 R 中的 JDBC 驱动程序?

r - 使用 roll_sum 时的部分和

excel - 在 PowerPivot 中滚动 12 个月总和

python - Pandas groupby : Count the number of occurrences within a time range for each group

css - 使用来自 shinydashboard 的 infoBox 进入 shiny

r - 如何安装旧的 R 包?

r - 将行名称更改为 R 的 data.frame 中的数字索引

python - Pandas 数据框中前 N 行的条件均值和总和

excel - PowerPivot 筛选功能