Likan Zhan

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