We can specify the constraining column names in quotes, in vars()
, and with
the following tidyselect helper functions: starts_with()
,
ends_with()
, contains()
, matches()
, and everything()
.
Having table preconditions
means pointblank will mutate the table just
before interrogation. It's isolated to the validation steps produced by this
validation step function. Using dplyr code is suggested here since the
statements can be translated to SQL if necessary. The code is to be supplied
as a one-sided R formula (using a leading ~
). In the formula
representation, the obligatory tbl
variable will serve as the input
data table to be transformed (e.g.,
~ tbl %>% dplyr::mutate(col_a = col_b + 10)
. A series of expressions can be
used by enclosing the set of statements with { }
but note that the tbl
variable must be ultimately returned.
Often, we will want to specify actions
for the validation. This argument,
present in every validation step function, takes a specially-crafted list
object that is best produced by the action_levels()
function. Read that
function's documentation for the lowdown on how to create reactions to
above-threshold failure levels in validation. The basic gist is that you'll
want at least a single threshold level (specified as either the fraction test
units failed, or, an absolute value), often using the warn_at
argument.
This is especially true when x
is a table object because, otherwise,
nothing happens. For the col_vals_*()
-type functions, using
action_levels(warn_at = 0.25)
or action_levels(stop_at = 0.25)
are good
choices depending on the situation (the first produces a warning when a
quarter of the total test units fails, the other stop()
s at the same
threshold level).
Want to describe this validation step in some detail? Keep in mind that this
is only useful if x
is an agent. If that's the case, brief
the agent
with some text that fits. Don't worry if you don't want to do it. The
autobrief protocol is kicked in when brief = NULL
and a simple brief will
then be automatically generated.