用于计算 'cumulative difference' 的 R 函数
R function for calculating a 'cumulative difference'
我有一个像这样的向量
v <- c(76, 31, 33, 7)
并且需要计算它的 'cumulative difference' 结果
cumdiff <- c(45, 12, 5)
这是 76 - 31 = 45 和 45 - 33 = 12 和 12 - 7 = 5。
是否有类似 cumsum
的 R 函数,或者我是否需要使用循环?
非常感谢您对此的帮助。
使用Reduce
的选项:
Reduce(`-`, v, accumulate=TRUE)[-1L]
#[1] 45 12 5
或使用 cumsum
的负数
v[1L] - cumsum(v[-1L])
我们还可以使用 accumulate
来自 purrr
library(purrr)
accumulate(v, `-`)[-1]
#[1] 45 12 5
我有一个像这样的向量
v <- c(76, 31, 33, 7)
并且需要计算它的 'cumulative difference' 结果
cumdiff <- c(45, 12, 5)
这是 76 - 31 = 45 和 45 - 33 = 12 和 12 - 7 = 5。
是否有类似 cumsum
的 R 函数,或者我是否需要使用循环?
非常感谢您对此的帮助。
使用Reduce
的选项:
Reduce(`-`, v, accumulate=TRUE)[-1L]
#[1] 45 12 5
或使用 cumsum
v[1L] - cumsum(v[-1L])
我们还可以使用 accumulate
来自 purrr
library(purrr)
accumulate(v, `-`)[-1]
#[1] 45 12 5