| rollapply {zoo} | R Documentation |
A generic function for applying a function to rolling margins of an array.
rollapply(data, width, FUN, ..., by = 1, ascending = TRUE, by.column = TRUE,
na.pad = FALSE, align = c("center", "left", "right"))
data |
the data to be used (representing a series of observations). |
width |
number of points per group. |
FUN |
the function to be applied.
In the case of functions like +, %*%, etc., the
function name must be quoted. |
... |
optional arguments to FUN. |
by |
calculate FUN for trailing width points at every by-th time point. |
ascending |
logical. If TRUE then points are passed to FUN in
ascending order of time; otherwise, they are passed in descending order. |
by.column |
logical. If TRUE, FUN is applied to each column separately. |
na.pad |
logical. If TRUE
then additional elements or rows of NAs are added so that
result has same number of elements or rows as data. |
align |
character specifying whether result should be left- or right-aligned or centered (default). |
Groups time points in successive sets of width time points and
applies FUN to the corresponding values. If FUN is
mean, max or median and by.column is
TRUE and there are no extra arguments
then special purpose code is used to enhance performance.
See rollmean, rollmax and rollmedian
for more details.
Currently, there are methods for "zoo" and "ts" series.
In previous versions, this function was called rapply. It was renamed
because from R 2.4.0 on, base R provides a different function rapply
for recursive (and not rolling) application of functions. The function
zoo::rapply is still provided for backward compatibility, however
it dispatches now to rollapply methods.
A object of the same class as data with the results of the rolling function.
z <- zoo(11:15, as.Date(31:35)) rollapply(z, 2, mean) z2 <- zoo(rnorm(6)) rollapply(z2, 3, mean, by = 3) # means of nonoverlapping groups of 3 aggregate(z2, c(3,3,3,6,6,6), mean) # same rollapply(z2, 3, mean) # uses rollmean which is optimized for mean rollmean(z2, 3) # same rollapply(z2, 3, (mean)) # does not use rollmean