Skip to contents

A wrapper for affirm_true(). The column, range, and boundaries arguments are used to construct the affirm_true(condition = column >= range[1] & column <= range[2]) argument.

Usage

affirm_range(
  data,
  label,
  column,
  range,
  boundaries = c(TRUE, TRUE),
  id = NA_integer_,
  priority = NA_integer_,
  data_frames = NA_character_,
  report_listing = NULL,
  data_action = NULL,
  error = getOption("affirm.error", default = FALSE)
)

Arguments

data

a data frame

label

a string used to describe the affirmation

column

a single column to check values of

range

vector of length two indicating the upper and lower bounds of the range. The class of the range must be compatible with the column, e.g. if column is numeric, range must also be numeric; if column is a date, range must be a date; if column is an integer, range must be an integer, etc.

boundaries

logical vector of length 2 indicating whether to include UB and LB in the range check. Default is c(TRUE, TRUE)

id, priority, data_frames

Optional additional information that will be passed to affirmation report.

  • id must be an integer, e.g. id = 1L

  • priority must be an integer, e.g. priority = 1L

  • data_frames string of data frame names used in affirmation, e.g. data_frames = "RAND, DM"

report_listing

an expression selecting/filtering rows from data= to return in the issue listing report. The default is to return the result from create_report_listing(), which are the rows that do not met in condition= and columns included in the condition= expression along with any columns set in option('affirm.id_cols'). The 'affirm.id_cols' option must be a character vector of column names, where columns will be selected with select(any_of(getOption('affirm.id_cols'))).

data_action

this expression is executed at the end of the function call when supplied.

  • Default is NULL, and the passed data frame in data= is returned unaltered.

  • Perhaps you'll need to remove problematic rows: data_action = filter(., !(!!condition))

error

Logical indicating whether to throw an error when condition is not met. Default is FALSE.

Value

data frame

See also

Other Data Affirmations: affirm_false(), affirm_na(), affirm_no_dupes(), affirm_true(), affirm_values()

Examples

affirm_init(replace = TRUE)
#>  We're ready to make data affirmations...

as_tibble(mtcars) |>
 affirm_range(
   label = "MPG is >0 and <=30",
   column = mpg,
   range = c(0, 30),
   boundaries = c(FALSE, TRUE)
 )
#>  MPG is >0 and <=30
#>   4 issues identified.
#> # A tibble: 32 × 11
#>      mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
#>    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#>  1  21       6  160    110  3.9   2.62  16.5     0     1     4     4
#>  2  21       6  160    110  3.9   2.88  17.0     0     1     4     4
#>  3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
#>  4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
#>  5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
#>  6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
#>  7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4
#>  8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2
#>  9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2
#> 10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4
#> # ℹ 22 more rows

affirm_close()