knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
The package is quite small and contains the core function sanityTracker::add_sanity_check
and
a few convenience functions (use the prefix sc_) that basically call sanityTracker::add_sanity_check
.
Some of the convenience functions like sanityTracker::sc_left_join
perform more than one check,
other can check multiple columns at the same time like sanityTracker::sc_cols_non_NA
.
The most helpful feature is that no matter how deep your sanity check is buried in your source code, sanityTracker will centralize the results AND if the defined check fails a few examples of the failed rows are stored for investigation.
The functions are more or less self explanatory, therefore we focus on the stored results and examples.
We start with a very simple check.
library(sanityTracker) sc <- sanityTracker::add_sanity_check( fail_vec = mtcars$mpg > 30, description = "mpg should be below 30" ) get_sanity_checks()
We see that from the 32 observations contained in mtcars 4 observations have a mpg above 30. It also tracked how we actually performed the check in the column fail_vec_str. Usually, if failures happen, the next step is to actually investigate those cases. For this purpose that package offers the parameter data:
sc <- sanityTracker::add_sanity_check( fail_vec = mtcars$mpg > 30, description = "mpg should be below 30. extract example ", data = mtcars, param_name = "mpg" ) get_sanity_checks()
First note that we now see two lines where the first one is from our initial sanity check. Furthermore, the second line shows now that the column example is not empty:
get_sanity_checks()[["example"]][[2]]
If you call the sanity check from within a function, the results also appear in the global list of all sanity checks and the table shows the function call where the check happened.
g <- function(x) { sanityTracker::add_sanity_check( fail_vec = x$mpg > 30, description = "mpg should be below 30. check in function", data = x, param_name = "mpg" ) } f <- function(x) {g(x = x)} dummy <- f(x = mtcars) get_sanity_checks()
The function sanityTracker::clear_sanity_checks
discards all sanity checks that are
currently stored.
sanityTracker::clear_sanity_checks() sanityTracker::get_sanity_checks()
Doing all checks with sanityTracker::add_sanity_check
would be cumbersome. Therefore,
the package provides some convenience functions to perform some standard checks like
whether columns a, b, c, x, y, z are positive or do they contain missing values or
is their combination unique. All convenience functions start with the prefix sc_.
These functions provide additional information about the check(s) that they perform in
the column additional_desc. So checking that all columns of mtcars are positive is
quite easy.
sc <- sanityTracker::sc_cols_positive( object = mtcars, cols = names(mtcars), description = "Exemplary sanity checks" ) get_sanity_checks()
Note that although the convenience functions do not explicitly list the parameter, description, counter_meas, data_name, example_size, param_name, call and fail_callback can be used via the '...'-argument.
clear_sanity_checks() sc <- sanityTracker::sc_col_elements( object = mtcars, col = "carb", feasible_elements = 1:4, description = "Only usual number of carburetors", fail_callback = warning, call = "directly from vignette" ) get_sanity_checks()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.