R中cumsum()
的反面是什么?
a = c(2, 5, 8)
cumsum = c(2, 7, 15)
cumdiff = c(2, 3, 1)
因为5-2 =3和8-7 = 1。
在R中有一个软件包可以用于这个包吗?
发布于 2022-09-08 09:31:21
在base R
中
cumdiff <- function(x) x - head(c(0, cumsum(x)), -1)
#cumdiff <- function(x) x - c(0, cumsum(x))[-(length(x) + 1)]
在dplyr
中,有lag
和default = 0
library(dplyr)
cumdiff <- function(x) x - lag(cumsum(x), default = 0)
结果:
a = c(2,5,8)
cumdiff(a)
#[1] 2 3 1
发布于 2022-09-08 09:52:44
library(dplyr)
data.frame(a) %>%
mutate(
cumdiff = a - lag(cumsum(a)),
cumdiff = ifelse(is.na(cumdiff), a, cumdiff)
)
a cumdiff
1 2 2
2 5 3
3 8 1
https://stackoverflow.com/questions/73646256
复制相似问题