lag_vec() applies a Lag Transformation.

## Usage

lag_vec(x, lag = 1)

lead_vec(x, lag = -1)

## Arguments

x

A vector to be lagged.

lag

Which lag (how far back) to be included in the differencing calculation. Negative lags are leads.

A numeric vector

## Details

Benefits:

This function is NA padded by default so it works well with dplyr::mutate() operations. The function allows both lags and leads (negative lags).

Lag Calculation

A lag is an offset of lag periods. NA values are returned for the number of lag periods.

A negative lag is considered a lead. The only difference between lead_vec() and lag_vec() is that the lead_vec() function contains a starting negative value.

Modeling and Advanced Lagging:

• recipes::step_lag() - Recipe for adding lags in tidymodels modeling

• tk_augment_lags() - Add many lags group-wise to a data.frame (tibble)

Vectorized Transformations:

• Box Cox Transformation: box_cox_vec()

• Lag Transformation: lag_vec()

• Differencing Transformation: diff_vec()

• Rolling Window Transformation: slidify_vec()

• Loess Smoothing Transformation: smooth_vec()

• Fourier Series: fourier_vec()

• Missing Value Imputation for Time Series: ts_impute_vec(), ts_clean_vec()

## Examples

library(dplyr)

# --- VECTOR ----

# Lag
1:10 %>% lag_vec(lag = 1)
#>  [1] NA  1  2  3  4  5  6  7  8  9

1:10 %>% lag_vec(lag = -1)
#>  [1]  2  3  4  5  6  7  8  9 10 NA

# --- MUTATE ----

m4_daily %>%
group_by(id) %>%
mutate(lag_1 = lag_vec(value, lag = 1))
#> # A tibble: 9,743 × 4
#> # Groups:   id [4]
#>    id    date       value lag_1
#>    <fct> <date>     <dbl> <dbl>
#>  1 D10   2014-07-03 2076.   NA
#>  2 D10   2014-07-04 2073. 2076.
#>  3 D10   2014-07-05 2049. 2073.
#>  4 D10   2014-07-06 2049. 2049.
#>  5 D10   2014-07-07 2006. 2049.
#>  6 D10   2014-07-08 2018. 2006.
#>  7 D10   2014-07-09 2019. 2018.
#>  8 D10   2014-07-10 2007. 2019.
#>  9 D10   2014-07-11 2010  2007.
#> 10 D10   2014-07-12 2002. 2010
#> # ℹ 9,733 more rows