Moving Averages and Other Rolling Operators for Unevenly Spaced Time Series in R
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
R
man
src
tests
.Rbuildignore
.gitignore
ChangeLog
DESCRIPTION
NAMESPACE
README.Rmd
README.md
utsOperators.Rproj

README.md

Introduction

This package provides rolling time series operators for unevenly spaced data, such as simple moving averages (SMAs), exponential moving averages (EMAs), and arbitrary rolling R functions. It is a wrapper around the highly-optimized C library utsAlgorithms. The time series class used by this package is the uts class.

The package rcpputs is a low-level wrapper around the same C library that does not rely on any time series class, but instead requires the user to pass in a vector of observation values and observation times to each function.

Installation

This package is not yet available on CRAN, but can be installled from GitHub:

devtools::install_github(c("andreas50/uts", "andreas50/utsOperators"))  # using package 'devtools'
remotes::install_github(c("andreas50/uts", "andreas50/utsOperators"))   # ... or using package 'remotes'

Sample Code

# Get sample unevenly-spaced time series with six observations
x <- ex_uts()
x
#> 2007-11-08 07:00:00 2007-11-08 08:01:00 2007-11-08 13:15:00 2007-11-09 07:30:00 2007-11-09 08:51:00 
#>              48.375              48.500              48.375              47.000              47.500 
#> 2007-11-09 15:15:00 
#>              47.350
# SMA with last-point interpolation, 1-day wide rolling time window
sma(x, ddays(1))

# EMA with linear interpolation, 12-hour effective temporal length
ema(x, dhours(12), interpolation="linear")

# Rolling mean, sum, number of observation values in a 1-day wide rolling time window
rolling_apply(ex_uts(), width=ddays(1), FUN=mean)
rolling_apply(ex_uts(), width=ddays(1), FUN=sum)
rolling_apply(ex_uts(), width=ddays(1), FUN=length)