aggregate_xts {SEI} | R Documentation |
Aggregate values in xts objects
Description
Inputs an xts time series and outputs an xts time series whose values have been aggregated over a moving window of a user-specified length.
Usage
aggregate_xts(
x,
len,
scale = c("days", "hours", "weeks", "quarters", "years"),
fun = "sum",
timescale = c("days", "hours", "weeks", "quarters", "years"),
na_thres = 10
)
Arguments
x |
xts object to be aggregated. |
len |
length of the aggregation period. |
scale |
timescale of the aggregation period, default is 'days'. |
fun |
function to apply to the aggregated data, default is 'sum'. |
timescale |
timescale of |
na_thres |
threshold for the percentage of NA values allowed in the aggregation period, default = 10. |
Details
This has been adapted from code available at https://github.com/WillemMaetens/standaRdized.
len
is a single numeric value specifying over how many time units the
data x
is to be aggregated. By default, len
is assumed to correspond
to a number of days, but this can also be specified manually using the argument
scale
. scale
must be one of: "days", "weeks", "months", "quarters", and "years".
fun
determines the function used to aggregate the time series. By default,
fun = "sum"
, meaning the aggregation results in accumulations over the
aggregation period. Alternative functions can also be used. For example, specifying
fun = "mean"
would return the mean over the aggregation period.
timescale
is the timescale of the input data x
. By default, this
is assumed to be "days".
Since the time series x
aggregates data over the aggregation period, problems
may arise when x
contains missing values. For example, if interest is
on daily accumulations, but 50% of the values in the aggregation period are missing,
the accumulation over this aggregation period will not be accurate.
This can be controlled using the argument na_thres
.
na_thres
specifies the percentage of NA values in the aggregation period
before a NA value is returned. i.e. the proportion of values that are allowed to be missing.
The default is na_thres = 10
.
Value
An xts time series with aggregated values.
Author(s)
Sam Allen, Noelia Otero
Examples
data(data_supply, package = "SEI")
# consider hourly German energy production data in 2019
supply_de <- subset(data_supply, country == "Germany", select = c("date", "PWS"))
supply_de <- xts::xts(supply_de$PWS, order.by = supply_de$date)
# daily accumulations
supply_de_daily <- aggregate_xts(supply_de, len = 1, timescale = "hours")
# weekly means
supply_de_weekly <- aggregate_xts(supply_de, len = 1, scale = "weeks", fun = "mean", "hours")
plot(supply_de, main = "Hourly energy production in Germany")
plot(supply_de_daily, main = "Daily energy production in Germany")
plot(supply_de_weekly, main = "Weekly energy production in Germany")