<grates_period> objects represent groupings of n consecutive days
calculated relative to an offset. It is useful for when you wish to group
an arbitrary number of dates together (e.g. 10 days).
as_period(x, n, ...)# S3 method for default
as_period(x, n = 1L, offset = 0L, ...)
# S3 method for Date
as_period(x, n = 1L, offset = 0L, ...)
# S3 method for POSIXt
as_period(x, n = 1L, offset = 0L, ...)
# S3 method for character
as_period(x, n = 1L, offset = 0L, ...)
# S3 method for factor
as_period(x, n = 1L, offset = 0L, ...)
new_period(x = integer(), n = 1L, offset = 0L)
is_period(xx)
A <grates_period> object.
R objects.
For as_period() this is the object to be coerced.
For new_period() this represents the number of periods since the Unix
Epoch (1970-01-01) and a specified offset.
[integer]
Number of days that are being grouped.
Only used for character input where additional arguments are passed through
to as.Date().
[integer] or, for as_period(), a [date].
Value you wish to start counting periods from relative to the Unix Epoch:
For integer values this is stored scaled by n
(offset <- as.integer(offset) %% n).
For date values this is first converted to an integer offset
(offset <- floor(as.numeric(offset))) and then scaled via n as above.
Internally grates_period objects are stored as the integer number, starting
at 0, of periods since the Unix Epoch (1970-01-01) and a specified offset. Here
periods are taken to mean groupings of n consecutive days. For storage and
calculation purposes, offset is scaled relative to n
(i.e. offset <- offset %% n) and values of x stored relative to this
scaled offset.
as_period() is a generic for coercing input in to <grates_period> objects.
It is the recommended way for constructing period objects as it allows the
offset to be specified as a date (rather than an integer value relative to
the Unix Epoch).
Character input is first parsed using as.Date().
POSIXct and POSIXlt are converted with their timezone respected.
new_period() is a minimal constructor for <grates_period>
objects aimed at developers. It takes, as input, the number of periods since
the Unix Epoch and the specified offset. double vectors will
be converted via as.integer(floor(x)).
# coercion from date
dat <- as.Date("2012-12-01")
as_period(dat + 0:3, n = 2, offset = dat)
# direct construction
new_period(1:10)
Run the code above in your browser using DataLab