as_tsibble {tsibble} | R Documentation |
Coerce to a tsibble object
Description
Usage
as_tsibble(
x,
key = NULL,
index,
regular = TRUE,
validate = TRUE,
.drop = TRUE,
...
)
## S3 method for class 'ts'
as_tsibble(x, ..., tz = "UTC")
## S3 method for class 'mts'
as_tsibble(x, ..., tz = "UTC", pivot_longer = TRUE)
Arguments
x |
Other objects to be coerced to a tsibble ( |
key |
Variable(s) that uniquely determine time indices. |
index |
A variable to specify the time index variable. |
regular |
Regular time interval ( |
validate |
|
.drop |
If |
... |
Other arguments passed on to individual methods. |
tz |
Time zone. May be useful when a |
pivot_longer |
|
Details
A tsibble is sorted by its key first and index.
Value
A tsibble object.
Index
An extensive range of indices are supported by tsibble:
native time classes in R (such as
Date
,POSIXct
, anddifftime
)tsibble's new additions (such as yearweek, yearmonth, and yearquarter).
other commonly-used classes:
ordered
,hms::hms
,lubridate::period
, andnanotime::nanotime
.
For a tbl_ts
of regular interval, a choice of index representation has to
be made. For example, a monthly data should correspond to time index created
by yearmonth, instead of Date
or POSIXct
. Because months in a year
ensures the regularity, 12 months every year. However, if using Date
, a
month containing days ranges from 28 to 31 days, which results in irregular
time space. This is also applicable to year-week and year-quarter.
Tsibble supports arbitrary index classes, as long as they can be ordered from
past to future. To support a custom class, you need to define index_valid()
for the class and calculate the interval through interval_pull()
.
Key
Key variable(s) together with the index uniquely identifies each record:
Empty: an implicit variable.
NULL
resulting in a univariate time series.A single variable: For example,
data(pedestrian)
usesSensor
as the key.Multiple variables: For example, Declare
key = c(Region, State, Purpose)
fordata(tourism)
. Key can be created in conjunction with tidy selectors likestarts_with()
.
Interval
The interval function returns the interval associated with the tsibble.
Regular: the value and its time unit including "nanosecond", "microsecond", "millisecond", "second", "minute", "hour", "day", "week", "month", "quarter", "year". An unrecognisable time interval is labelled as "unit".
Irregular:
as_tsibble(regular = FALSE)
gives the irregular tsibble. It is marked with!
.Unknown: Not determined (
?
), if it's an empty tsibble, or one entry for each key variable.
An interval is obtained based on the corresponding index representation:
integerish numerics between 1582 and 2499: "year" (
Y
). Note the year of 1582 saw the beginning of the Gregorian Calendar switch.-
yearquarter
: "quarter" (Q
) -
yearmonth
: "month" (M
) -
yearweek
: "week" (W
) -
Date
: "day" (D
) -
difftime
: "week" (W
), "day" (D), "hour" (h
), "minute" (m
), "second" (s
) -
POSIXt
/hms
: "hour" (h
), "minute" (m
), "second" (s
), "millisecond" (us
), "microsecond" (ms
) -
period
: "year" (Y
), "month" (M
), "day" (D
), "hour" (h
), "minute" (m
), "second" (s
), "millisecond" (us
), "microsecond" (ms
) -
nanotime
: "nanosecond" (ns
) other numerics &
ordered
(ordered factor): "unit" When the interval cannot be obtained due to the mismatched index format, an error is issued.
The interval is invariant to subsetting, such as filter()
, slice()
, and [.tbl_ts
.
However, if the result is an empty tsibble, the interval is always unknown.
When joining a tsibble with other data sources and aggregating to different
time scales, the interval gets re-calculated.
See Also
Examples
# coerce tibble to tsibble w/o a key
tbl1 <- tibble(
date = as.Date("2017-01-01") + 0:9,
value = rnorm(10)
)
as_tsibble(tbl1)
# supply the index to suppress the message
as_tsibble(tbl1, index = date)
# coerce tibble to tsibble with a single variable for key
# use `yearquarter()` to represent quarterly data
tbl2 <- tibble(
qtr = rep(yearquarter("2010 Q1") + 0:9, 3),
group = rep(c("x", "y", "z"), each = 10),
value = rnorm(30)
)
# "qtr" is automatically considered as the index var
as_tsibble(tbl2, key = group)
as_tsibble(tbl2, key = group, index = qtr)
# create a tsibble with multiple variables for key
# use `yearmonth()` to represent monthly data
tbl3 <- tibble(
mth = rep(yearmonth("2010 Jan") + 0:8, each = 3),
xyz = rep(c("x", "y", "z"), each = 9),
abc = rep(letters[1:3], times = 9),
value = rnorm(27)
)
as_tsibble(tbl3, key = c(xyz, abc))
# coerce ts to tsibble
as_tsibble(AirPassengers)
as_tsibble(sunspot.year)
as_tsibble(sunspot.month)
as_tsibble(austres)
# coerce mts to tsibble
z <- ts(matrix(rnorm(300), 100, 3), start = c(1961, 1), frequency = 12)
as_tsibble(z)
as_tsibble(z, pivot_longer = FALSE)