Simply hand over one of these functions to the funby
argument of one of the
methods of a DTSg
object, which supports it. The method then does the
rest of the work. See respective calling method for further information.
Other uses are possible, but not recommended.
byY_____(.dateTime, .helpers)
byYQ____(.dateTime, .helpers)
byYm____(.dateTime, .helpers)
byYmd___(.dateTime, .helpers)
byYmdH__(.dateTime, .helpers)
byYmdHM_(.dateTime, .helpers)
byYmdHMS(.dateTime, .helpers)
by______(.dateTime, .helpers)
by_Q____(.dateTime, .helpers)
by_m____(.dateTime, .helpers)
by___H__(.dateTime, .helpers)
by____M_(.dateTime, .helpers)
by_____S(.dateTime, .helpers)
byFasttimeY_____(.dateTime, .helpers)
byFasttimeYQ____(.dateTime, .helpers)
byFasttimeYm____(.dateTime, .helpers)
byFasttimeYmd___(.dateTime, .helpers)
byFasttimeYmdH__(.dateTime, .helpers)
byFasttimeYmdHM_(.dateTime, .helpers)
byFasttimeYmdHMS(.dateTime, .helpers)
byFasttime______(.dateTime, .helpers)
byFasttime_Q____(.dateTime, .helpers)
byFasttime_m____(.dateTime, .helpers)
byFasttime___H__(.dateTime, .helpers)
byFasttime____M_(.dateTime, .helpers)
byFasttime_____S(.dateTime, .helpers)
All functions return a POSIXct
vector with timestamps
corresponding to the function's temporal aggregation level.
There are two families of temporal aggregation level functions. The one
family truncates timestamps (truncating family), the other extracts a certain
part of them (extracting family). Each family comes in three flavours: the
first relies solely on base R, the second utilises fasttime::fastPOSIXct
of fasttime and the third RcppCCTZ::parseDatetime
of
RcppCCTZ.
The fasttime flavour works with UTC and equivalent as well as all
Etc/GMT time zones only (execute
grep("^(Etc/)?(UCT|UTC)$|^(Etc/)?GMT(\\+|-)?0?$", OlsonNames(), ignore.case = TRUE, value = TRUE)
for a full list of supported time zones) and is
limited to timestamps between the years 1970 and 2199, but generally is the
fastest for the extracting family of functions. For time zones other than UTC
and equivalent the RcppCCTZ flavour generally is the fastest.
Use the funbyApproach
argument of the respective calling method in order to
specify the utilised flavour.
The truncating family sets timestamps to the lowest possible point in time of the corresponding temporal aggregation level:
byY_____
truncates to year, e.g. 2000-11-11 11:11:11.1 becomes 2000-01-01 00:00:00.0
byYQ____
truncates to quarter, e.g. 2000-11-11 11:11:11.1 becomes 2000-10-01 00:00:00.0
byYm____
truncates to month, e.g. 2000-11-11 11:11:11.1 becomes 2000-11-01 00:00:00.0
byYmd___
truncates to day, e.g. 2000-11-11 11:11:11.1 becomes 2000-11-11 00:00:00.0
byYmdH__
truncates to hour, e.g. 2000-11-11 11:11:11.1 becomes 2000-11-11 11:00:00.0
byYmdHM_
truncates to minute, e.g. 2000-11-11 11:11:11.1 becomes 2000-11-11 11:11:00.0
byYmdHMS
truncates to second, e.g. 2000-11-11 11:11:11.1 becomes 2000-11-11 11:11:11.0
By convention, the extracting family sets the year to 2199 and extracts a certain part of timestamps:
by______
extracts nothing, i.e. all timestamps become 2199-01-01 00:00:00.0
by_Q____
extracts the quarters, e.g. 2000-11-11 11:11:11.1 becomes 2199-10-01 00:00:00.0
by_m____
extracts the months, e.g. 2000-11-11 11:11:11.1 becomes 2199-11-01 00:00:00.0
by___H__
extracts the hours, e.g. 2000-11-11 11:11:11.1 becomes 2199-01-01 11:00:00.0
by____M_
extracts the minutes, e.g. 2000-11-11 11:11:11.1 becomes 2199-01-01 00:11:00.0
by_____S
extracts the seconds, e.g. 2000-11-11 11:11:11.1 becomes 2199-01-01 00:00:11.0
Please note that the byFasttime*
versions are deprecated.