Raises error if predicate is FALSE for any row after applying row reduction function

Share:

Description

Meant for use in a data analysis pipeline, this function applies a function to a data frame that reduces each row to a single value. Then, a predicate function is applied to each of the row reduction values. If any of these predicate applications yield FALSE, this function will raise an error, effectively terminating the pipeline early. If there are no FALSEs, this function will just return the data that it was supplied for further use in later parts of the pipeline.

Usage

1
2
3
4
assert_rows(data, row_reduction_fn, predicate, ..., error_fun = assertr_stop)

assert_rows_(data, row_reduction_fn, predicate, ..., .dots,
  error_fun = assertr_stop, .nameofpred = "")

Arguments

data

A data frame

row_reduction_fn

A function that returns a value for each row of the provided data frame

predicate

A function that returns FALSE when violated

...

Comma separated list of unquoted expressions. Uses dplyr's select to select columns from data.

error_fun

Function to call if assertion fails. Takes one error string. Uses stop by default

.dots

Use assert_rows_() to select columns using standard evaluation.

.nameofpred

Text representation of predicate for printing in case of assertion violation. Will automatically be retrieved if left blank (default)

Value

data if predicate assertions are TRUE. error if not.

Note

See vignette("assertr") for how to use this in context

See Also

insist_rows assert verify insist

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# returns mtcars
assert_rows(mtcars, num_row_NAs, within_bounds(0,2), mpg:carb)

# equivalent using standard evaluation
assert_rows_(mtcars, num_row_NAs, within_bounds(0,2), "mpg:carb")


library(magrittr)                    # for piping operator

mtcars %>%
  assert_rows(rowSums, within_bounds(0,2), vs:am)
  # anything here will run

## Not run: 
mtcars %>%
  assert_rows(rowSums, within_bounds(0,1), vs:am)
  # the assertion is untrue so
  # nothing here will run
## End(Not run)