apply.monthly {xts} | R Documentation |
Apply Function over Calendar Periods
Description
Apply a specified function to each distinct period in a given time series object.
Usage
apply.daily(x, FUN, ...)
apply.weekly(x, FUN, ...)
apply.monthly(x, FUN, ...)
apply.quarterly(x, FUN, ...)
apply.yearly(x, FUN, ...)
Arguments
x |
an time-series object coercible to xts |
FUN |
an R function |
... |
additional arguments to FUN |
Details
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.
Value
A vector of results produced by FUN
, corresponding
to the appropriate periods.
Note
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
used to work 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.
Author(s)
Jeffrey A. Ryan
See Also
endpoints
, period.apply
,
to.monthly
Examples
xts.ts <- xts(rnorm(231),as.Date(13514:13744,origin="1970-01-01"))
start(xts.ts)
end(xts.ts)
apply.monthly(xts.ts,colMeans)
apply.monthly(xts.ts,function(x) var(x))