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

时间:2018-03-15 20:21:25

标签: r recursion vector add

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

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

是否有一种函数或其他快速方法可以使foo的每个值递归地添加到它之前的数字中?

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

1 3 6 10 15
  • foo[1]1foo[1] + foo[2]1 + 2 = 3foo[1] + foo[2] + foo[3]1 + 2 + 3 = 6等等。

我的尝试:

我想出了:

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

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

1 个答案:

答案 0 :(得分:1)

是的,cumsum正是如此:

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

对于累积产品,另一个方便且密切相关的功能是cumprod(x)。请参阅?cumsum