Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tidyverse/hms
A simple class for storing time-of-day values
https://github.com/tidyverse/hms
hms r time
Last synced: 3 months ago
JSON representation
A simple class for storing time-of-day values
- Host: GitHub
- URL: https://github.com/tidyverse/hms
- Owner: tidyverse
- License: other
- Created: 2016-03-31T09:05:58.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2024-08-01T14:28:23.000Z (3 months ago)
- Last Synced: 2024-08-01T16:05:19.514Z (3 months ago)
- Topics: hms, r, time
- Language: R
- Homepage: https://hms.tidyverse.org/
- Size: 3.18 MB
- Stars: 137
- Watchers: 11
- Forks: 25
- Open Issues: 15
-
Metadata Files:
- Readme: README.Rmd
- Changelog: NEWS.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Support: .github/SUPPORT.md
Awesome Lists containing this project
- jimsghstars - tidyverse/hms - A simple class for storing time-of-day values (R)
README
---
output:
downlit::readme_document:
html_preview: false
---```{r setup, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "README-"
)pkgload::load_all()
```[![Lifecycle: stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html)
[![rcc](https://github.com/tidyverse/hms/workflows/rcc/badge.svg)](https://github.com/tidyverse/hms/actions)
[![Codecov test coverage](https://codecov.io/gh/tidyverse/hms/branch/main/graph/badge.svg)](https://app.codecov.io/gh/tidyverse/hms?branch=main)
[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/hms)](https://cran.r-project.org/package=hms)## Overview
The hms package provides a simple class for storing durations or time-of-day values and displaying them in the hh:mm:ss format. This class is intended to simplify data exchange with databases, spreadsheets, and other data sources:
- Stores values as a numeric vector that contains the number of seconds
since midnight
- Supports construction from explicit hour, minute, or second values
- Supports coercion to and from various data types, including `POSIXt`
- Can be used as column in a data frame
- Based on the `difftime` class
- Values can exceed the 24-hour boundary or be negative
- By default, fractional seconds up to a microsecond are displayed, regardless of the value of the `"digits.secs"` option## Installation
```r
# The easiest way to get hms is to install the whole tidyverse:
install.packages("tidyverse")# Alternatively, install just hms:
install.packages("hms")# Or the the development version from GitHub:
# install.packages("devtools")
devtools::install_github("tidyverse/hms")
```## Usage
The following example showcases ways of using the `hms` class standalone or as a data frame column.
```{r}
library(hms)hms(56, 34, 12)
as_hms(Sys.time())
parse_hms("12:34:56")
as.POSIXct(hms(1))data.frame(hours = 1:3, hms = hms(hours = 1:3))
```## Internal representation
Objects of the `hms` and its underlying `difftime` classes are stored as number of seconds since `00:00:00`.
Use `as.numeric()` and `as_hms()` to convert to and from numbers.```{r}
times <- parse_hms(c("00:00:00.25", "00:00:01", "00:01:30", "01:00:00"))
times
times_num <- as.numeric(times)
times_num
as_hms(times_num)
```---
Please note that the 'hms' project is released with a
[Contributor Code of Conduct](https://github.com/tidyverse/hms/blob/master/CODE_OF_CONDUCT.md).
By contributing to this project, you agree to abide by its terms.