In addition to using the
lubridate package, some additional functions
to work with times are provided.
This function takes a numeric with a "unit" attribute and converts it to
another numeric with a different time attribute.
If the units passed to argument
units are the same as
attr(time, "unit"), then it simply returns input
inSeconds(unit, envir, skipChecks = FALSE) convertTimeunit(time, unit, envir, skipChecks = FALSE) .spadesTimes spadesTimes() checkTimeunit(unit, envir) # S4 method for character,missing checkTimeunit(unit, envir) # S4 method for character,environment checkTimeunit(unit, envir)
Character. One of the time units used in
An environment. This is where to look up the function definition for the time unit. See details.
For speed, the internal checks for classes and missingness can be skipped.
Numeric. With a unit attribute, indicating the time unit of the input numeric. See Details.
An object of class
character of length 12.
A numeric vector of length 1, with
unit attribute set to "seconds".
Current pre-defined units are found within the
The user can define a new unit. The unit name can be anything, but the function
definition must be of the form
The unit name is the part without the
d and the function name definition includes the
This new function, e.g.,
dfortnight <- function(x) lubridate::duration(dday(14))
can be placed anywhere in the search path or in a module.
Because of R scoping, if
envir is a simList environment, then
this function will search there first, then up the current
Thus, it will find a user defined or module defined unit before a SpaDES unit.
This means that a user can override the
dyear given in SpaDES, for example,
which is 365.25 days, with
dyear <- function(x) lubridate::duration(dday(365)).
time has no
unit attribute, then it is assumed to be