Efficient windowed / rolling operations. Each function
here applies an operation over a moving window of
size n, with (customizable) weights specified
through weights.
Usage
roll_mean(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = numeric(0),
partial = FALSE,
align = c("center", "left", "right"),
normalize = TRUE,
na.rm = FALSE
)
roll_meanr(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "right",
normalize = TRUE,
na.rm = FALSE
)
roll_meanl(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "left",
normalize = TRUE,
na.rm = FALSE
)
roll_median(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = numeric(0),
partial = FALSE,
align = c("center", "left", "right"),
normalize = TRUE,
na.rm = FALSE
)
roll_medianr(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "right",
normalize = TRUE,
na.rm = FALSE
)
roll_medianl(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "left",
normalize = TRUE,
na.rm = FALSE
)
roll_min(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = numeric(0),
partial = FALSE,
align = c("center", "left", "right"),
normalize = TRUE,
na.rm = FALSE
)
roll_minr(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "right",
normalize = TRUE,
na.rm = FALSE
)
roll_minl(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "left",
normalize = TRUE,
na.rm = FALSE
)
roll_max(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = numeric(0),
partial = FALSE,
align = c("center", "left", "right"),
normalize = TRUE,
na.rm = FALSE
)
roll_maxr(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "right",
normalize = TRUE,
na.rm = FALSE
)
roll_maxl(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "left",
normalize = TRUE,
na.rm = FALSE
)
roll_prod(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = numeric(0),
partial = FALSE,
align = c("center", "left", "right"),
normalize = TRUE,
na.rm = FALSE
)
roll_prodr(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "right",
normalize = TRUE,
na.rm = FALSE
)
roll_prodl(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "left",
normalize = TRUE,
na.rm = FALSE
)
roll_sum(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = numeric(0),
partial = FALSE,
align = c("center", "left", "right"),
normalize = TRUE,
na.rm = FALSE
)
roll_sumr(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "right",
normalize = TRUE,
na.rm = FALSE
)
roll_suml(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "left",
normalize = TRUE,
na.rm = FALSE
)
roll_sd(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = numeric(0),
partial = FALSE,
align = c("center", "left", "right"),
normalize = TRUE,
na.rm = FALSE
)
roll_sdr(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "right",
normalize = TRUE,
na.rm = FALSE
)
roll_sdl(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "left",
normalize = TRUE,
na.rm = FALSE
)
roll_var(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = numeric(0),
partial = FALSE,
align = c("center", "left", "right"),
normalize = TRUE,
na.rm = FALSE
)
roll_varr(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "right",
normalize = TRUE,
na.rm = FALSE
)
roll_varl(
x,
n = 1L,
weights = NULL,
by = 1L,
fill = NA,
partial = FALSE,
align = "left",
normalize = TRUE,
na.rm = FALSE
)Arguments
- x
A numeric vector or a numeric matrix.
- n
The window size. Ignored when
weightsis non-NULL.- weights
A vector of length
n, giving the weights for each element within a window. IfNULL, we take unit weights of widthn.- by
Calculate at every
by-th point rather than every point.- fill
Either an empty vector (no fill), or a vector (recycled to) length 3 giving left, center and right fills.
- partial
Compute windows at the edges of
xover however many elements are in range, rather than filling them? Cannot be combined withweights, andfilldoes not apply.- align
Align windows on the
"left","center"or"right".- normalize
Normalize window weights, such that they sum to
n.- na.rm
Remove missing values?