Returns suitably lagged and iterated differences.

`diff(x, …)`# S3 method for default
diff(x, lag = 1, differences = 1, …)

# S3 method for POSIXt
diff(x, lag = 1, differences = 1, …)

# S3 method for Date
diff(x, lag = 1, differences = 1, …)

x

a numeric vector or matrix containing the values to be differenced.

lag

an integer indicating which lag to use.

differences

an integer indicating the order of the difference.

…

further arguments to be passed to or from methods.

If `x`

is a vector of length `n`

and `differences = 1`

,
then the computed result is equal to the successive differences
`x[(1+lag):n] - x[1:(n-lag)]`

.

If `difference`

is larger than one this algorithm is applied
recursively to `x`

.
Note that the returned value is a vector which is shorter than
`x`

.

If `x`

is a matrix then the difference operations are carried out
on each column separately.

`diff`

is a generic function with a default method and ones for
classes `"ts"`

, `"POSIXt"`

and
`"Date"`

.

`NA`

's propagate.

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
*The New S Language*.
Wadsworth & Brooks/Cole.

# NOT RUN { diff(1:10, 2) diff(1:10, 2, 2) x <- cumsum(cumsum(1:10)) diff(x, lag = 2) diff(x, differences = 2) diff(.leap.seconds) # }