This is the initial CRAN release of the package with provides the core data types and temporal manipulation for temporal analysis with mixed granularity data.
mixtime() constructor for creating mixed
temporal vectors that combine time points of different granularities
(e.g. monthly and quarterly) in a single vector via
vecvec.linear_time() creates linear time vectors with a
user-specified chronon (smallest indivisible time granule), supporting
both discrete (integer) and continuous (fractional) time models.year(), yearquarter(),
yearmonth(), yearweek(), date(),
and datetime().cyclical_time() creates cyclical time vectors
representing positions within a repeating cycle (e.g. day-of-week,
month-of-year).month_of_year(), day_of_year(),
day_of_month(), day_of_week(),
week_of_year(), and time_of_day().cal_gregorian: standard Gregorian calendar with year,
quarter, month, day, hour, minute, second, and millisecond units.cal_isoweek: ISO 8601 week-date calendar with ISO year,
week, and day units. Weeks always start on Monday; the first week of the
year is the week containing the first Thursday.cal_sym454: Symmetry454 perennial solar calendar with a
symmetrical 4–5–4 week pattern per quarter and a leap-week rule.seq() methods for mixtime and
mt_time objects support integer, string
(e.g. "1 month"), and time unit by arguments,
as well as length.out and along.with. Overflow
behaviour when step granules differ from sequence granules can be
controlled with on_invalid = "nearest" (default) or
"overflow".round_time(), floor_time(), and
ceiling_time() round time objects to a specified time
granule, preserving the input class and timezone.mixtime objects. The format strings use glue-like
{} substitutions with the helper functions
lin(x) and cyc(x, y) to position linear and
cyclical time components in a string. x and y
are time granules from a calendar, which can be used to create general
purpose mixed-calendar time formats.tz_name() extracts the timezone from a time
object.tz_offset() returns the UTC offset for a datetime in
its timezone.tz_abbreviation() returns the timezone abbreviation
(e.g. "EST", "PDT").tz_transitions() returns a data frame of DST and other
timezone transitions between two time points.time_calendar() extracts the calendar system from a
time object.tsibble index validation are provided,
enabling mixtime vectors to be used as time indexes in
tsibble objects and in forecasting with
fable.new_calendar() defines a calendar as a named
collection of time unit classes, with optional inheritance from another
calendar.
mt_unit(), mt_tz_unit(), and
mt_loc_unit() primitives for creating new time
units.
new_linear_time_fn() and
new_cyclical_time_fn() are factories for building
convenient linear and cyclical time functions
(e.g. yearmonth()).
Calendar arithmetic with:
chronon_divmod() performs division-with-remainder
arithmetic between time granules (e.g. 1 day to 1 month), enabling
cross-granule calendrical arithmetic.chronon_cardinality() returns the number of smaller
granules contained in a coarser granule (e.g. days in 1 month), with
context-dependent results for variable-length granules.chronon_epoch() returns the epoch offset for a given
time unit.Displaying time with:
time_unit_abbr() and time_unit_full() for
time unit text.linear_labels() and cyclical_labels() for
time labels (e.g. Jan, Feb, … for months of year).chronon_format_linear() and
chronon_format_cyclical() for default formatting
strings.chronon_format_attr() for appending attribute
information (e.g. timezones)