Check User-Supplied Function Arguments

For developers to check user-supplied function arguments. It is designed to be simple, fast and customizable. Error messages follow the tidyverse style guide.


chk chk logo of completed tick mark

Lifecycle:stable R-CMD-check Codecov testcoverage License:MIT CRANstatus CRAN downloads

chk is an R package for developers to check user-supplied function arguments.

It is designed to be simple, customizable and fast.

Demonstration

chk provides simple commonly used checks as (chk_ functions) which can be combined together for more complex checking.

library(chk)

y <- "a"

chk_string(y)
chk_flag(y)
#> Error:
#> ! `y` must be a flag (TRUE or FALSE).

data <- data.frame(x = 1:2)
chk_range(nrow(data), c(3, 8))
#> Error:
#> ! `nrow(data)` must be between 3 and 8, not 2.

Or used inside functions to test user-provided arguments.

my_fun <- function(x) {
  chk_flag(x)
  x
}
my_fun(TRUE)
#> [1] TRUE
my_fun(NA)
#> Error in `my_fun()`:
#> ! `x` must be a flag (TRUE or FALSE).

Error messages follow the tidyverse style guide while the errors themselves are rlang errors of class chk_error.

Information

For more information see the Get Started vignette.

Installation

Release

To install the release version from CRAN.

install.packages("chk")

The website for the release version is at https://poissonconsulting.github.io/chk/.

Development

To install the development version from GitHub

# install.packages("remotes")
remotes::install_github("poissonconsulting/chk")

or from r-universe.

install.packages("chk", repos = c("https://poissonconsulting.r-universe.dev", "https://cloud.r-project.org"))

Inspiration

Contribution

Please report any issues.

Pull requests are always welcome.

Code of Conduct

Please note that the chk project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("chk")

0.11.0 by Joe Thorley, a month ago


https://github.com/poissonconsulting/chk, https://poissonconsulting.github.io/chk/


Report a bug at https://github.com/poissonconsulting/chk/issues/


Browse source code at https://github.com/cran/chk


Authors: Joe Thorley [aut, cre] , Kirill Müller [aut] , Ayla Pearson [aut] , Florencia D'Andrea [ctb] , Nadine Hussein [ctb] , Evan Amies-Galonski [ctb] (ORCID: , Stefano Mezzini [ctb] , Poisson Consulting [cph, fnd]


Documentation:   PDF Manual  


MIT + file LICENSE license


Imports lifecycle, methods, rlang, tools

Suggests covr, knitr, R6, rmarkdown, S7, testthat, withr


Imported by ABCDscores, NBDCtools, SigBridgeRUtils, adjoin, apm, bayesnec, centr, dttr2, extras, fscache, healthatlas, irg, lmw, mcmcderive, mcmcr, multivarious, nlist, optweight, regextable, rtide, sched, sim.BA, sims, sqlq, ssddata, ssdtools, term, tidyplus, tinter, vecmatch, ypr.

Suggested by fishbc.


See at CRAN