Я пытаюсь суммировать значения в data.frame накопительным способом.
У меня есть это:
df <- data.frame(
a = rep(1:2, each = 5),
b = 1:10,
step_window = c(2,3,1,2,4, 1,2,3,2,1)
)
Я пытаюсь суммировать значения b
в группах a
. Хитрость в том, что мне нужна сумма b
значений, которая соответствует количеству строк, следующих за текущей строкой, заданной step_window
.
Это результат, который я ищу:
data.frame(
a = rep(1:2, each = 5),
step_window = c(2,3,1,2,4,
1,2,3,2,1),
b = 1:10,
sum_b_step_window = c(3, 9, 3, 9, 5,
6, 15, 27, 19, 10)
)
Я пытался сделать это с помощью RcppRoll
, но получаю сообщение об ошибке Expecting a single value
:
df %>%
group_by(a) %>%
mutate(sum_b_step_window = RcppRoll::roll_sum(x = b, n = step_window))