# diff

##### Lagged Differences

Returns suitably lagged and iterated differences.

- Keywords
- arith

##### Usage

`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, …)

##### Arguments

- 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.

##### Details

`diff`

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

, `"POSIXt"`

and
`"Date"`

.

`NA`

's propagate.

##### Value

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.

##### References

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

##### See Also

##### Examples

`library(base)`

```
# 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)
# }
```

*Documentation reproduced from package base, version 3.5.1, License: Part of R 3.5.1*