cumsum(x) and diff(x)
Likan Zhan · 2017-03-07
Addapted from RHertel’ Stackoverflow post.
diff(x)
returns a vector of length (length(x)-1)
which contains the difference between one element and the next in a vector x.
cumsum(x)
returns a vector of length equal to the length of x containing the sum of the elements in x
x <- c(1:10)
diff(x)
cumsum(x)
## [1] 1 1 1 1 1 1 1 1 1
## [1] 1 3 6 10 15 21 28 36 45 55
The combination of cumsum
and diff
leads to different results, depending on the order in which the functions are executed:
cumsum(diff(x))
diff(cumsum(x))
## [1] 1 2 3 4 5 6 7 8 9
## [1] 2 3 4 5 6 7 8 9 10