A dedicated Slack channel has been created for announcements, support and to help build a community of practice around this open source package. You may request an invitation to join from [email protected].
A suite of compiled functions calculating rolling mins, means,
maxes and other statistics. This package is designed to meet the needs of
data processing systems for environmental time series.
Analysis of time series data often involves applying "rolling" functions to calculate, e.g. a "moving average". These functions are straightforward to write in any language and it makes sense to have C++ versions of common rolling functions available to R as they dramatically speed up calculations. Several packages exist that provide some version of this functionality:
- zoo -- core R package with a specific data model
- seismicRoll -- rolling functions focused on seismology
- RcppRoll -- rolling functions for basic statistics
Our goal in creating a new package of C++ rolling functions is to build up a suite of functions useful in environmental time series analysis. We want these functions to be available in a neutral environment with no underlying data model. The functions are as straightforward to use as is reasonably possible with a target audience of data analysts at any level of R expertise.
Install from CRAN with:
install.packages('MazamaRollUtils')
Install the latest version from GitHub with:
devtools::install_github("MazamaScience/MazamaRollUtils")
library(MazamaRollUtils)
# Example air quality time series
t <- example_pm25$datetime
x <- example_pm25$pm25
plot(t, x)
lines(t, roll_max(x, width = 12), col = 'salmon')
lines(t, roll_min(x, width = 12), col = 'light blue')
This project is supported by Mazama Science.