R package ‘lagged’ provides classes and methods for objects, like autocovariances, whose natural indexing starts from zero.
The latest stable version is on CRAN.
install_packages("lagged")
The vignette shipping with the package gives illustrative examples. vignette("Guide_lagged", package = "lagged")
.
You can install the development version of lagged
from Github:
library(devtools)
install_github("GeoBosh/lagged")
The package provides several classes with methods for indexing starting from zero. Objects can be created with the function Lagged()
. It returns a suitable Lagged object from a class suitable for the argument:
library(lagged)
v_lagged <- Lagged(0:6) # 1d object
m_lagged <- Lagged(matrix(1:12, nrow = 4)) # 2d object
a_lagged <- Lagged(array(1:24, dim = c(4,3,2))) # 3d object
It recognises also "acf"
objects from base R time series functions:
ap_lagged <- Lagged(acf(AirPassengers, plot = FALSE))
The maximal lag stored in the object can be obtained with maxLag()
:
maxLag(v_lagged)
maxLag(m_lagged)
maxLag(a_lagged)
The length of the objects is equal to maxlag(object) + 1
.
length(v_lagged)
length(m_lagged)
length(a_lagged)
Subsetting with "["
drops the laggedness and returns vector, matrix, or array, depending on the dimension of the object. Subsetting with one index gives the data for the requested lags:
tmp <- v_lagged[0:2]
tmp <- m_lagged[0:2]
tmp <- a_lagged[0:1]
Values beyond the maximal lag are NA
. Dimensions are not dropped if an extent has length one (i.e. drop = FALSE
):
v_lagged[0]
m_lagged[0]
a_lagged[0]
To drop dimensions, use “[[”:
v_lagged[[0]]
m_lagged[[0]]
a_lagged[[0]]
Arithmetic operations and mathematical functions are defined naturally on lagged objects. The shorter one is extended with NA
’s to the length of the longer.
Operations between lagged and base R objects are defined, as well. However, it is an error to do operations between objects whose dimensions do not match, unless the base R object is a scalar, or, more generally, has the size of x[[0] ]
.