knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
checkr
has been superseded by the chk
package.
checkr
is a light-weight R package of expressive, assertive, pipe-friendly functions to check the properties of common R objects.
In the case of failure the functions, which are designed to be used in scripts and packages, issue informative error messages.
For an overview of the functions see the checkr-naming
vignette and for a comparison with similar packages see the assertive-programming
vignette.
The following code demonstrates the check_data()
function
library(checkr) # the starwars data frame in the dplyr package fails many of these checks check_data(dplyr::starwars, values = list( height = c(66L, 264L), name = "", mass = c(20,1358, NA), hair_color = c("blond", "brown", "black", NA), gender = c("male", "female", "hermaphrodite", "none", NA)), order = TRUE, nrow = c(81, 84), key = "hair_color", error = FALSE)
checkr
uses objects to check
the values of other objects using an elegant and expressive syntax.
To check the class simply pass an object of the desired class.
y <- c(2,1,0,1,NA) check_vector(y, values = numeric(0)) check_vector(y, values = integer(0))
To check that a vector does not include missing values pass a single non-missing value (of the correct class).
check_vector(y, 1)
To allow it to include missing values include a missing value.
check_vector(y, c(1, NA))
And to check that it only includes missing values only pass a missing value (of the correct class)
check_vector(y, NA_real_)
To check the range of a vector pass two non-missing values (as well as the missing value if required).
check_vector(y, c(0, 2, NA)) check_vector(y, c(-1, -10, NA))
To check the vector only includes specific values pass three or more non-missing values or
set only = TRUE
.
check_vector(y, c(0, 1, 2, NA)) check_vector(y, c(1, 1, 2, NA)) check_vector(y, c(1, 2, NA), only = TRUE)
By default, the name of an object is determined from the function call.
check_vector(list(x = 1))
This simplifies things but results in less informative error messages when used in a pipe.
library(magrittr) y %>% check_list()
The argument x_name
can be used to override the name.
y %>% check_list(x_name = "y")
The four wrapper functions
check_lgl()
, check_int()
, check_dbl()
and check_str()
check whether an object
is an attribute-less non-missing scalar logical (flag), integer, double (number) or character (string).
They are really useful for checking the types of arguments in functions
fun <- function(x) { check_lgl(x)} fun(x = NA) fun(x = TRUE) fun(x = 1)
Additional scalar wrappers are check_date()
and check_dttm()
for scalar Date and POSIXct objects.
Alternatively you can roll your own using the more general check_scalar()
function.
To install the latest development version from r-universe.
install.packages("checkr", repos = c("https://poissonconsulting.r-universe.dev", "https://cloud.r-project.org"))
To install the latest development version from GitHub
# 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/checkr")
citation(package = "checkr")
Please report any issues.
Pull requests are always welcome.
Please note that the checkr project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.