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")

# Overview

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