Get started

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

Core functionality

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()

Convenience functions

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()


Try the sanityTracker package in your browser

Any scripts or data that you put into this service are public.

sanityTracker documentation built on April 22, 2020, 5:09 p.m.