一个用于计算“累积差异”的R函数

3

我有一个向量,例如:

v <- c(76, 31, 33, 7)

需要计算其“累积差异”,导致

cumdiff <- c(45, 12, 5)

这个式子是 76 - 31 = 45,45 - 33 = 12,12 - 7 = 5。

是否有类似于 cumsum 的 R 函数,还是需要使用循环?

非常感谢您对此的帮助。

2个回答

4
使用 Reduce 的选项:
Reduce(`-`, v, accumulate=TRUE)[-1L]
#[1] 45 12  5

或者使用cumsum的负值

v[1L] - cumsum(v[-1L])

哇,谢谢。这非常快速且完美地运作。再次感谢! - user13656978

1
我们还可以使用purrr中的accumulate
library(purrr)
accumulate(v, `-`)[-1]
#[1] 45 12  5

1
非常感谢您分享这个有用的解决方案。很抱歉回复晚了,因为有太多其他的工作任务。 - user13656978

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接