R中某个窗口的移动总和

时间:2018-07-05 08:43:12

标签: r sum rolling-computation

我想计算接下来5行的总和。在这种情况下,第1行将显示第2行到第6行的数字总和。数据帧的最后5行可以用NA填充。

数据看起来像这样

enter image description here

理想的结果看起来像

enter image description here

谢谢!

2 个答案:

答案 0 :(得分:1)

首先,请考虑下次阅读How to make a great R reproducible example?并使用dput添加示例数据。

df <- data.frame(t = c(1,3,5,2,1,3,4,6,7,2,1))

library(zoo)
library(dplyr)

df$V2 <- rollsum(lead(df$t), 5, align = "left", fill = NA)
df

   t V2
1  1 14
2  3 15
3  5 16
4  2 21
5  1 22
6  3 20
7  4 NA
8  6 NA
9  7 NA
10 2 NA
11 1 NA

答案 1 :(得分:0)

您可以使用zoo软件包中的rollsum。

library(zoo)
rollsum(df$column, 5)

第二个参数是求和的行数,这里是5。