roll_cor(data, width, weights = rep(1, width), center = TRUE, scale = TRUE, min_obs = width, complete_obs = TRUE, na_restore = FALSE, parallel_for = c("rows", "cols"))
TRUE
then the weighted mean of each variable is used,
if FALSE
then zero is used.TRUE
then the weighted standard deviation of each variable is used,
if FALSE
then no scaling is done.TRUE
then rows containing any missing values are removed,
if FALSE
then pairwise is used.rows
or cols
.setThreadOptions
for thread options via RcppParallel.
n_vars <- 10
n_obs <- 1000
data <- matrix(rnorm(n_obs * n_vars), nrow = n_obs, ncol = n_vars)
# 252-day rolling correlation matrix
result <- roll_cor(data, 252)
# Equivalent to 'na.rm = TRUE'
result <- roll_cor(data, 252, min_obs = 1)
# Expanding window
result <- roll_cor(data, n_obs, min_obs = 1)
# Exponential decay
weights <- 0.9 ^ (251:0)
result <- roll_cor(data, 252, weights, min_obs = 1)
Run the code above in your browser using DataLab