Learn R Programming

SpaDES.core (version 2.0.5)

inSeconds: Convert time units

Description

Current pre-defined units are found within the spadesTimes() function. The user can define a new unit. The unit name can be anything, but the function definition must be of the form "dunitName", e.g., dyear or dfortnight. The unit name is the part without the d and the function name definition includes the d. 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 time.

Usage

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)

Value

A numeric vector of length 1, with unit attribute set to "seconds".

Format

An object of class character of length 12.

Arguments

unit

Character. One of the time units used in SpaDES or user defined time unit, given as the unit name only. See details.

envir

An environment. This is where to look up the function definition for the time unit. See details.

skipChecks

For speed, the internal checks for classes and missingness can be skipped. Default FALSE.

time

Numeric. With a unit attribute, indicating the time unit of the input numeric. See Details.

Author

Alex Chubaty & Eliot McIntire

Eliot McIntire

Details

Because of R scoping, if envir is a simList environment, then this function will search there first, then up the current search() path. 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)).

If time has no unit attribute, then it is assumed to be seconds.