R: A simple class for storing time-of-day values

hms {hms} | R Documentation

## A simple class for storing time-of-day values

### Description

The values are stored as a difftime vector with a custom class, and always with "seconds" as unit for robust coercion to numeric. Supports construction from time values, coercion to and from various data types, and formatting. Can be used as a regular column in a data frame.

### Usage

    hms(seconds = NULL, minutes = NULL, hours = NULL, days = NULL)

    is.hms(x)

    as.hms(x, ...)

    ## Default S3 method:
    as.hms(x, ...)

    ## S3 method for class 'difftime'
    as.hms(x, ...)

    ## S3 method for class 'numeric'
    as.hms(x, ...)

    ## S3 method for class 'character'
    as.hms(x, ...)

    ## S3 method for class 'POSIXt'
    as.hms(x, tz = pkgconfig::get_config("hms::default_tz", ""),
      ...)

    ## S3 method for class 'POSIXlt'
    as.hms(x, tz = pkgconfig::get_config("hms::default_tz", ""),
      ...)

    ## S3 method for class 'hms'
    as.POSIXct(x, ...)

    ## S3 method for class 'hms'
    as.POSIXlt(x, ...)

    ## S3 method for class 'hms'
    as.character(x, ...)

    ## S3 method for class 'hms'
    as.data.frame(x, row.names = NULL, optional = FALSE, ...,
      nm = paste(deparse(substitute(x), width.cutoff = 500L), collapse = " "))

    ## S3 method for class 'hms'
    format(x, ...)

    ## S3 method for class 'hms'
    print(x, ...)

### Arguments

`seconds, minutes, hours, days` | Time since midnight. No bounds checking is performed.
`x` | An object.
`...` | Arguments passed on to further methods.
`tz` | The time zone in which to interpret a POSIXt time for extracting the time of day. The default is now the zone of `x` but was `"UTC"` for v0.3 and earlier. The previous behavior can be restored by calling `pkgconfig::set_config("hms::default_tz", "UTC")`, see `pkgconfig::set_config()`.
`row.names` | `NULL` or a character vector giving the row names for the data frame. Missing values are not allowed.
`optional` | logical. If `TRUE`, setting row names and converting column names (to syntactic names: see `make.names`) is optional. Note that all of R's base package `as.data.frame()` methods use `optional` only for column names treatment, basically with the meaning of `data.frame(*, check.names = !optional)`.
`nm` | Name of column in new data frame

### Details

For `hms`, all arguments must have the same length or be `NULL`. Odd combinations (e.g., passing only `seconds` and `hours` but not `minutes`) are rejected.

### Examples

    hms(56, 34, 12)
    hms()
    as.hms(1)
    as.hms("12:34:56")
    as.hms(Sys.time())
    as.POSIXct(hms(1))
    data.frame(a = hms(1))
    d <- data.frame(hours = 1:3)
    d$hours <- hms(hours = d$hours)
    d

[Package hms version 0.4.2 Index]