Скользящая сумма определенного окна в R

Я хочу рассчитать текущую сумму следующих 5 строк. В этом случае в строке 1 будет отображаться сумма чисел от строки 2 до строки 6. Последние 5 строк фрейма данных могут быть заполнены NA.

Данные выглядят так

введите здесь описание изображения

И идеальный результат будет выглядеть так

введите здесь описание изображения

Спасибо!


person Xavier Tran    schedule 05.07.2018    source источник
comment
zoo::rollsum() твой друг   -  person symbolrush    schedule 05.07.2018
comment
Не могли бы вы привести пример?   -  person Xavier Tran    schedule 05.07.2018
comment
Мы будем торговать вами - не могли бы вы сначала привести пример ваших данных?   -  person Shinobi_Atobe    schedule 05.07.2018


Ответы (2)


Во-первых, прочитайте Как сделать отличный воспроизводимый пример R? и добавьте образцы данных, используя 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
person Lennyy    schedule 05.07.2018

Вы можете использовать rollsum из пакета zoo.

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

Второй аргумент — это количество строк для суммирования, здесь их пять.

person Natheer Alabsi    schedule 05.07.2018