R: Add many rolling window calculations to the data

tk_augment_slidify {timetk} | R Documentation

## Add many rolling window calculations to the data

### Description

Quickly use any function as a rolling function and apply to multiple `.periods`. Works with `dplyr` groups too.

### Usage

    tk_augment_slidify(
      .data,
      .value,
      .period,
      .f,
      ...,
      .align = c("center", "left", "right"),
      .partial = FALSE,
      .names = "auto"
    )

### Arguments

`.data` | A tibble.
`.value` | A numeric column to have a rolling window transformation applied
`.period` | One or more periods for the rolling window(s)
`.f` | A summary `[function / formula]`,
`...` | Optional arguments for the summary function
`.align` | Rolling functions generate `.period - 1` fewer values than the incoming vector. Thus, the vector needs to be aligned. Select one of "center", "left", or "right".
`.partial` | .partial Should the moving window be allowed to return partial (incomplete) windows instead of `NA` values. Set to FALSE by default, but can be switched to TRUE to remove `NA`'s.
`.names` | A vector of names for the new columns. Must be of same length as `.period`. Default is "auto".

### Details

`tk_augment_slidify()` scales the `slidify_vec()` function to multiple time series `.periods`. See `slidify_vec()` for examples and usage of the core function arguments.

### Value

Returns a `tibble` object describing the timeseries.

### See Also

Augment Operations:

- `tk_augment_timeseries_signature()` - Group-wise augmentation of timestamp features

- `tk_augment_holiday_signature()` - Group-wise augmentation of holiday features

- `tk_augment_slidify()` - Group-wise augmentation of rolling functions

- `tk_augment_lags()` - Group-wise augmentation of lagged data

- `tk_augment_differences()` - Group-wise augmentation of differenced data

- `tk_augment_fourier()` - Group-wise augmentation of fourier series

Underlying Function:

- `slidify_vec()` - The underlying function that powers `tk_augment_slidify()`

### Examples

    library(tidyverse)
    library(tidyquant)
    library(timetk)

    FANG %>%
        select(symbol, date, adjusted) %>%
        group_by(symbol) %>%
        tk_augment_slidify(
            .value  = adjusted,
            # Multiple rolling windows
            .period  = c(10, 30, 60, 90),
            .f       = AVERAGE,
            .partial = TRUE,
            .names   = str_c("MA_", c(10, 30, 60, 90))
        )

[Package timetk version 2.4.0 Index]