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
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
(you will need to declare
"lubridate" in your
pkgDeps in the metadata).
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)
An object of class
character of length 12.
Character. One of the time units used in
SpaDES or user
defined time unit, given as the unit name only. See details.
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.
A numeric vector of length 1, with
unit attribute set to "seconds".
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