roll_scale {roll} | R Documentation |
Rolling Scaling and Centering
Description
A function for computing the rolling and expanding scaling and centering of time-series data.
Usage
roll_scale(x, width, weights = rep(1, width), center = TRUE,
scale = TRUE, min_obs = width, complete_obs = FALSE,
na_restore = FALSE, online = TRUE)
Arguments
x |
vector or matrix. Rows are observations and columns are variables. |
width |
integer. Window size. |
weights |
vector. Weights for each observation within a window. |
center |
logical. If |
scale |
logical. If |
min_obs |
integer. Minimum number of observations required to have a value within a window,
otherwise result is |
complete_obs |
logical. If |
na_restore |
logical. Should missing values be restored? |
online |
logical. Process observations using an online algorithm. |
Details
If center
is TRUE
then centering is done by subtracting the weighted mean from
each variable, if FALSE
then zero is used. After centering, if scale
is TRUE
then
scaling is done by dividing by the weighted standard deviation for each variable if center
is
TRUE
, and the root mean square otherwise. If scale
is FALSE
then no scaling is
done.
The denominator used gives an unbiased estimate of the standard deviation,
so if the weights are the default then the divisor n - 1
is obtained.
Value
An object of the same class and dimension as x
with the rolling and expanding
scaling and centering.
Examples
n <- 15
x <- rnorm(n)
weights <- 0.9 ^ (n:1)
# rolling z-scores with complete windows
roll_scale(x, width = 5)
# rolling z-scores with partial windows
roll_scale(x, width = 5, min_obs = 1)
# expanding z-scores with partial windows
roll_scale(x, width = n, min_obs = 1)
# expanding z-scores with partial windows and weights
roll_scale(x, width = n, min_obs = 1, weights = weights)