| name | assertr |
| description | R assertr package for assertion pipelines. Use for assertive programming with data frames. |
assertr
Assertive programming for R analysis pipelines.
Basic Assertions
library(assertr)
library(dplyr)
df %>%
assert(within_bounds(0, 120), age) %>%
assert(not_na, name) %>%
assert(is_uniq, id)
Predicates
within_bounds(0, 100)
in_set(c("A", "B", "C"))
not_na
is_uniq
is_positive <- function(x) x > 0
df %>%
assert(is_positive, income)
Verify
df %>%
verify(age >= 0) %>%
verify(income > 0) %>%
verify(nrow(.) > 0)
Insist
df %>%
insist(within_n_sds(3), age) %>%
insist(within_n_mads(3), income)
Chain Assertions
df %>%
verify(nrow(.) > 0) %>%
assert(not_na, id, name) %>%
assert(within_bounds(0, 120), age) %>%
insist(within_n_sds(3), income) %>%
group_by(category) %>%
summarize(mean_age = mean(age))
Error Handling
df %>%
chain_start %>%
assert(not_na, name) %>%
assert(is_uniq, id) %>%
chain_end(error_fun = error_append)
df %>%
assert(not_na, name, error_fun = just_warn)
df %>%
assert(not_na, name, error_fun = error_logical)
Assert Rows
df %>%
assert_rows(
rowSums,
within_bounds(0, 100),
col1, col2, col3
)
df %>%
assert_rows(
function(x) x$end - x$start,
function(x) x >= 0,
end, start
)
Column Assertions
df %>%
has_all_names("id", "name", "age")
df %>%
assert(is.numeric, age, income) %>%
assert(is.character, name)
Success/Failure Functions
df %>%
assert(not_na, name,
success_fun = success_append,
error_fun = error_append)