Uses the structural specification given in .spec to aggregate a time series. A grouped structure is specified using grp1 * grp2, and a nested structure is specified via parent / child. Aggregating the key structure is commonly used with forecast reconciliation to produce coherent forecasts over some hierarchy.

aggregate_key(.data, .spec, ...)

Arguments

.data

A tsibble.

.spec

The specification of aggregation structure.

...

<data-masking> Name-value pairs of summary functions. The name will be the name of the variable in the result.

The value can be:

  • A vector of length 1, e.g. min(x), n(), or sum(is.na(y)).

  • A vector of length n, e.g. quantile().

  • A data frame, to add multiple columns from a single expression.

Details

This function is experimental, and is subject to change in the future.

The way in which the measured variables are aggregated is specified in a similar way to how [dplyr::summarise()] is used.

See also

Examples

library(tsibble) tourism %>% aggregate_key(Purpose * (State / Region), Trips = sum(Trips))
#> # A tsibble: 34,000 x 5 [1Q] #> # Key: Purpose, State, Region [425] #> Quarter Purpose State Region Trips #> <qtr> <chr> <chr> <chr> <dbl> #> 1 1998 Q1 <aggregated> <aggregated> <aggregated> 23182. #> 2 1998 Q2 <aggregated> <aggregated> <aggregated> 20323. #> 3 1998 Q3 <aggregated> <aggregated> <aggregated> 19827. #> 4 1998 Q4 <aggregated> <aggregated> <aggregated> 20830. #> 5 1999 Q1 <aggregated> <aggregated> <aggregated> 22087. #> 6 1999 Q2 <aggregated> <aggregated> <aggregated> 21458. #> 7 1999 Q3 <aggregated> <aggregated> <aggregated> 19914. #> 8 1999 Q4 <aggregated> <aggregated> <aggregated> 20028. #> 9 2000 Q1 <aggregated> <aggregated> <aggregated> 22339. #> 10 2000 Q2 <aggregated> <aggregated> <aggregated> 19941. #> # … with 33,990 more rows