runner

R-CMD-check CRAN

Lightweight R package for rolling window operations. Apply any R function on rolling windows with full control over window size, lag, and time indices. Works with equally and unequally spaced time series.

Installation

# CRAN
install.packages("runner")

# GitHub
devtools::install_github("gogonzo/runner")

Example

library(runner)

# Rolling mean with window size 3
runner(1:10, k = 3, f = mean)
##  [1] 1.0 1.5 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0
# Rolling regression on time series data
df <- data.frame(
  date = Sys.Date() + cumsum(sample(1:3, 20, TRUE)),
  y = rnorm(20),
  x = rnorm(20)
)

runner(
  x = df,
  k = "7 days",
  idx = df$date,
  f = function(data) coef(lm(y ~ x, data = data))[2]
)
##           x           x           x           x           x           x           x           x           x           x           x           x           x           x           x           x 
##          NA  5.97481674  1.49452100 -0.21575866  0.72053778  0.70082162  1.24506110  1.04075030  1.08250746  0.64303239  0.54936879  0.58570439 -0.78182096 -0.14576205 -0.49775101 -0.28316471 
##           x           x           x           x 
##  4.25927423  1.08657714  0.04363541 -0.15253300