lag.zoo {zoo}R Documentation

Lags and Differences of zoo Objects


Methods for computing lags and differences of "zoo" objects.


## S3 method for class 'zoo'
lag(x, k = 1, na.pad = FALSE, ...)
## S3 method for class 'zoo'
diff(x, lag = 1, differences = 1, arithmetic = TRUE, na.pad = FALSE, ...)



a "zoo" object.

k, lag

For lag the number of lags (in units of observations). Note the sign of k behaves as in lag. For diff it is the number of backward lags used (or if negative the number of forward lags.


an integer indicating the order of the difference.


logical. Should arithmetic (or geometric) differences be computed?


logical. If TRUE it adds any times that would not otherwise have been in the result with a value of NA. If FALSE those times are dropped.


currently not used.


These methods for "zoo" objects behave analogously to the default methods. The only additional arguments are arithmetic in diff na.pad in lag.zoo which can also be specified in diff.zoo as part of the dots. Also, "k" can be a vector of lags in which case the names of "k", if any, are used in naming the result.


The lagged or differenced "zoo" object.


Note the sign of k: a series lagged by a positive k is shifted earlier in time.

lag.zoo and lag.zooreg can give different results. For a lag of 1 lag.zoo moves points to the adjacent time point whereas lag.zooreg moves the time by deltat. This implies that a point in a zoo series cannot be lagged to a time point that is not already in the series whereas this is possible for a zooreg series.

See Also

zoo, lag, diff


x <- zoo(11:21)

lag(x, k = 1)
lag(x, k = -1)
# this pairs each value of x with the next or future value
merge(x, lag1 = lag(x, k=1))
diff(x^3, -1)
diff(x^3, na.pad = TRUE)

[Package zoo version 1.8-12 Index]