在 R 中递归添加连续的向量值

Recursively add consecutive vector values in R

假设我有一个包含以下值的向量:

foo <- c(1:5)
[1] 1 2 3 4 5 

是否有函数或其他快速方法来获取 foo 的每个值以递归地添加到它之前的数字?

Desired Result 是一个包含这些附加值的向量:

1 3 6 10 15

我的尝试:

我想出了:

vapply(1:length(foo), function(x) sum(foo[1]:foo[x]),integer(1))

但我希望有更简单的方法来做到这一点...

是的,cumsum 正是这样做的:

cumsum(foo)
# [1]  1  3  6 10 15

另一个方便且密切相关的函数是 cumprod(x) 累积产品。参见 ?cumsum