Create a Chronological Object
Create chrononogical objects which represent dates and times of day.
chron(dates, times, format = c("m/d/y","h:m:s"), out.format, origin)
- character or numeric vector specifying dates. If
datesare assumed to be in one of the date formats below; if numeric,
datesare assumed to be Julian dates, i.e., number of days since
- optional character or numeric vector specifying times of
day. If character,
timesare assumed to be in one of the time formats below; if numeric,
timesare assumed to be fractions of a day.
- vector or list specifying the input format of the input.
The format can be either strings specifying one of the recognized
formats below or a list of user-supplied functions to convert dates
from character into Julian dates and vice versa.
- vector or list specifying date and time format for
printing and output. Default is same as
- a vector specifying the date with respect to which
Julian dates are computed. Default is
c(month = 1, day = 1, year = 1970); you may set the option
chron.originto specify your own default, e.g.,
- An object of class
times =were supplied. All these inherit from class
These objects represent dates and times of day, and allow the following arithmetic and summaries: subtraction
d1-d2, constant addition
d1+constants, all logical comparisons, summaries
range()(which drop NAs by default); constants specify days (fractions are converted to time-of-day, e.g., 2.5 represents 2 days and 12 hours). Operations such as sorting, differencing, etc., are automatically handled.
There are methods for
lag(), and the usual subsetting functions
[<-. The functions
chronobject as input and extract the corresponding time interval.
cut()is used to create ordered factors from
chronobjects. Chronological objects may be used with the modeling software.
The current implementation of
chronobjects does not handle time zones nor daylight savings time.
dts <- dates(c("02/27/92", "02/27/92", "01/14/92", "02/28/92", "02/01/92")) dts #  02/27/92 02/27/92 01/14/92 02/28/92 02/01/92 tms <- times(c("23:03:20", "22:29:56", "01:03:30", "18:21:03", "16:56:26")) tms #  23:03:20 22:29:56 01:03:30 18:21:03 16:56:26 x <- chron(dates = dts, times = tms) x #  (02/27/92 23:03:19) (02/27/92 22:29:56) (01/14/92 01:03:30) #  (02/28/92 18:21:03) (02/01/92 16:56:26) # We can add or subtract scalars (representing days) to dates or # chron objects: c(dts, dts + 10) #  02/27/92 03/08/92 dts - 31 #  01/27/92 # We can substract dates which results in a times object that # represents days between the operands: dts - dts # Time in days: #  44 # Logical comparisons work as expected: dts[dts > "01/25/92"] #  02/27/92 02/27/92 02/28/92 02/01/92 dts > dts #  TRUE TRUE FALSE TRUE TRUE # Summary operations which are sensible are permitted and work as # expected: range(dts) #  01/14/92 02/28/92 diff(x) # Time in days: #  -0.02319444 -44.89335648 45.72052083 -27.05876157 sort(dts)[1:3] #  01/14/92 02/01/92 02/27/92