The diff function in R returns suitably lagged and iterated differences.
x = c(1, 2, 1, 3, 11, 7, 5) diff(x) # [1] 1 -1 2 8 -4 -2 diff(x, lag=2) [1] 0 1 10
You can use zoo::rollapply
zoo::rollapply
require(zoo) x <- c(1, 2, 1, 3, 11, 7, 5) rollapply(x, width = 2, FUN = sum) ## [1] 3 3 4 14 18 12