Create a tsibble object
tsibble(..., key = id(), index, regular = TRUE)
A set of name-value pairs. The names of "key" and "index" should be avoided as they are used as the arguments.
A bare (or unquoted) variable to specify the time index variable.
Regular time interval (
A tsibble object.
A tsibble is sorted by its key(s) first and index.
The time indices are no longer an attribute (for example, the
ts object), but preserved as the essential component of the tsibble. A
few index classes, such as
difftime, forms the basis of
the tsibble, with new additions yearweek, yearmonth, and yearquarter
representing year-week, year-month, and year-quarter respectively.
zoo::yearqtr are also supported. It is extensible to work with custom
index, for example trading days and weekly data.
Key variable(s) together with the index uniquely identifies each record. And key(s) also imposes the structure on a tsibble, which can be created via the id function as identifiers:
None: an implicit variable
id() resulting a univariate time series.
A single variable: an explicit variable. For example,
id(Sensor) column as the key.
Nested variables: a nesting of one variable under another. For example,
data(tourism) contains two geographical locations:
Region is the lower level than
State in Australia; in other words,
is nested into
State, which naturally forms a hierarchy. A vertical bar (
is used to describe this nesting relationship, and thus
In theory, nesting can involve infinite levels, so is
Crossed variables: a crossing of one variable with another. For example,
the geographical locations are crossed with the purpose of visiting (
data(tourism). A comma (
,) is used to indicate this crossing
relationship. Nested and crossed variables can be combined, such as
id(Region | State, Purpose).
These key variables describe the data structure.
The interval function returns the interval associated with the tsibble.
Regular: the value and its time unit including "second", "minute", "hour", "day", "week", "month", "quarter", "year". An unrecognisable time interval is labelled as "unit".
as_tsibble(regular = FALSE) gives the irregular tsibble. It is
Unknown: if there is only one entry for each key variable, the interval
cannot be determined (
# create a tsibble w/o a key ---- tsbl1 <- tsibble( date = seq(as.Date("2017-01-01"), as.Date("2017-01-10"), by = 1), value = rnorm(10), key = id(), index = date ) tsbl1#> # A tsibble: 10 x 2 [1DAY] #> date value #> <date> <dbl> #> 1 2017-01-01 0.386 #> 2 2017-01-02 0.0208 #> 3 2017-01-03 0.00759 #> 4 2017-01-04 0.931 #> 5 2017-01-05 -0.685 #> 6 2017-01-06 0.337 #> 7 2017-01-07 -0.412 #> 8 2017-01-08 0.934 #> 9 2017-01-09 1.84 #> 10 2017-01-10 -0.705# create a tsibble with one key ---- tsbl2 <- tsibble( qtr = rep(yearquarter(seq(2010, 2012.25, by = 1 / 4)), 3), group = rep(c("x", "y", "z"), each = 10), value = rnorm(30), key = id(group), index = qtr ) tsbl2#> # A tsibble: 30 x 3 [1QUARTER] #> # Keys: group  #> qtr group value #> <qtr> <chr> <dbl> #> 1 2010 Q1 x 0.00851 #> 2 2010 Q2 x 2.03 #> 3 2010 Q3 x -1.34 #> 4 2010 Q4 x 1.16 #> 5 2011 Q1 x -0.203 #> 6 2011 Q2 x -0.378 #> 7 2011 Q3 x 1.74 #> 8 2011 Q4 x -0.845 #> 9 2012 Q1 x -0.962 #> 10 2012 Q2 x 1.02 #> # ... with 20 more rows