Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/poissonconsulting/hmstimer

An R package to track elapsed clock time using a `hms::hms()` scalar.
https://github.com/poissonconsulting/hmstimer

cran hms r rstats timer

Last synced: 3 months ago
JSON representation

An R package to track elapsed clock time using a `hms::hms()` scalar.

Awesome Lists containing this project

README

        

---
output: github_document
---

```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```

# ssdtools

[![Lifecycle: stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html#stable)
[![R-CMD-check](https://github.com/poissonconsulting/hmstimer/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/poissonconsulting/hmstimer/actions/workflows/R-CMD-check.yaml)
[![Codecov test coverage](https://codecov.io/gh/poissonconsulting/hmstimer/graph/badge.svg)](https://app.codecov.io/gh/poissonconsulting/hmstimer)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
[![CRAN status](https://www.r-pkg.org/badges/version/hmstimer)](https://cran.r-project.org/package=hmstimer)
![CRAN downloads](https://cranlogs.r-pkg.org/badges/hmstimer)

`hmstimer` is an R package to
track elapsed clock time using a [hms::hms](https://github.com/tidyverse/hms) scalar.

`hmstimer` was originally developed to time Bayesian model runs. It should not be used to estimate how long extremely fast code takes to execute as the package code adds a small time cost.

Create and start a timer with `tmr_timer(start = TRUE)`.

```{r}
library(hmstimer)

tmr <- tmr_timer(start = TRUE)
Sys.sleep(0.1)
str(tmr)
hms::as_hms(tmr)
```

Get the elapsed time with `tmr_elapsed()`.
The title is optional.
```{r}
tmr <- tmr_timer(start = TRUE, title = "my timer")

Sys.sleep(0.1)
tmr_elapsed(tmr)

Sys.sleep(0.1)
tmr_elapsed(tmr)
```

Stop the timer with `tmr_stop()`.

```{r}
tmr <- tmr_stop(tmr)
tmr_elapsed(tmr)

Sys.sleep(1)
tmr_elapsed(tmr)
```

Restart the timer with `tmr_start()`.
```{r}
tmr <- tmr_start(tmr)
tmr_elapsed(tmr)
Sys.sleep(0.1)
tmr_elapsed(tmr)
```

There are several options for printing and formatting including coercing to a hms object.
```{r}
tmr <- tmr_stop(tmr)
print(tmr)
tmr_print(tmr)
tmr_format(tmr, digits = 5)
```

If running `tmr_print()` behaves differently.

```{r}
tmr <- tmr_start(tmr)
tmr_print(tmr)
```

The time for a block of code to complete can be printed using `with_timer()`.

```{r}
with_timer({
Sys.sleep(0.1)
Sys.sleep(0.1)
1 + 1
})
```

## Installation

To install the latest release version from CRAN.
```r
install.packages("hmstimer")
```

To install the latest development version from [r-universe](https://poissonconsulting.r-universe.dev/hmstimer).
```r
install.packages("hmstimer", repos = c("https://poissonconsulting.r-universe.dev", "https://cloud.r-project.org"))
```

To install the latest development version from [GitHub](https://github.com/poissonconsulting/hmstimer)
```r
# install.packages("pak", repos = sprintf("https://r-lib.github.io/p/pak/stable/%s/%s/%s", .Platform$pkgType, R.Version()$os, R.Version()$arch))
pak::pak("poissonconsulting/hmstimer")
```

## Contribution

Please report any [issues](https://github.com/poissonconsulting/hmstimer/issues).

[Pull requests](https://github.com/poissonconsulting/hmstimer/pulls) are always welcome.

## Code of Conduct

Please note that the hmstimer project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/0/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.