apply.monthly: Apply Function over Calendar Periods

apply.dailyR Documentation

Apply Function over Calendar Periods


Apply a specified function to each distinct period in a given time series object.


apply.daily(x, FUN, ...)

apply.weekly(x, FUN, ...)

apply.monthly(x, FUN, ...)

apply.quarterly(x, FUN, ...)

apply.yearly(x, FUN, ...)



A time-series object coercible to xts.


A function to apply to each period.


Additional arguments to FUN.


Simple mechanism to apply a function to non-overlapping time periods, e.g. weekly, monthly, etc. Different from rolling functions in that this will subset the data based on the specified time period (implicit in the call), and return a vector of values for each period in the original data.

Essentially a wrapper to the xts functions endpoints() and period.apply(), mainly as a convenience.


A vector of results produced by FUN, corresponding to the appropriate periods.


When FUN = mean the results will contain one column for every column in the input, which is different from other math functions (e.g. median, sum, prod, sd, etc.).

FUN = mean works by column because the default method stats::mean previously worked by column for matrices and data.frames. R Core changed the behavior of mean to always return one column in order to be consistent with the other math functions. This broke some xts dependencies and mean.xts() was created to maintain the original behavior.

Using FUN = mean will print a message that describes this inconsistency. To avoid the message and confusion, use FUN = colMeans to calculate means by column and use FUN = function(x) mean to calculate one mean for all the data. Set options(xts.message.period.apply.mean = FALSE) to suppress this message.


Jeffrey A. Ryan

See Also

endpoints(), period.apply(), to.monthly()


xts.ts <- xts(rnorm(231),as.Date(13514:13744,origin="1970-01-01"))


apply.monthly(xts.ts,function(x) var(x))

xts documentation built on June 22, 2024, 9:56 a.m.