Learn R Programming

roll (version 1.0.0)

roll_mean: Rolling Means

Description

A parallel function for computing rolling means of time-series data.

Usage

roll_mean(data, width, weights = rep(1, width), min_obs = width,
  complete_obs = FALSE, na_restore = FALSE, parallel_for = c("rows",
  "cols"))

Arguments

data
matrix or xts object. Rows are observations and columns are variables.
width
integer. Window size.
weights
vector. Weights for each observation within a window.
min_obs
integer. Minimum number of observations required to have a value within a window, otherwise result is NA.
complete_obs
logical. If TRUE then rows containing any missing values are removed, if FALSE then pairwise is used.
na_restore
logical. Should missing values be restored?
parallel_for
character. Executes a "for" loop in which iterations run in parallel by rows or cols.

Value

  • An object of the same class and dimension as data with the rolling means.

See Also

setThreadOptions for thread options via RcppParallel.

Examples

Run this code
n_vars <- 10
n_obs <- 1000
data <- matrix(rnorm(n_obs * n_vars), nrow = n_obs, ncol = n_vars)

# 252-day rolling mean
result <- roll_mean(data, 252)

# Equivalent to 'na.rm = TRUE'
result <- roll_mean(data, 252, min_obs = 1)

# Expanding window
result <- roll_mean(data, n_obs, min_obs = 1)

# Exponential decay
weights <- 0.9 ^ (251:0)
result <- roll_mean(data, 252, weights, min_obs = 1)

Run the code above in your browser using DataLab