roll_scale | R Documentation |
A function for computing the rolling and expanding scaling and centering of time-series data.
roll_scale(x, width, weights = rep(1, width), center = TRUE,
scale = TRUE, min_obs = width, complete_obs = FALSE,
na_restore = FALSE, online = TRUE)
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. |
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.
An object of the same class and dimension as x
with the rolling and expanding
scaling and centering.
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.