Ensure no duplicate terms appear in formula
validate - asserts the following:
formula
must not have duplicates terms on the left and right hand
side of the formula.
check - returns the following:
ok
A logical. Does the check pass?
duplicates
A character vector. The duplicate terms.
validate_no_formula_duplication(formula, original = FALSE) check_no_formula_duplication(formula, original = FALSE)
formula |
A formula to check. |
original |
A logical. Should the original names be checked, or should
the names after processing be used? If |
validate_no_formula_duplication()
returns formula
invisibly.
check_no_formula_duplication()
returns a named list of two components,
ok
and duplicates
.
hardhat provides validation functions at two levels.
check_*()
: check a condition, and return a list. The list
always contains at least one element, ok
, a logical that specifies if the
check passed. Each check also has check specific elements in the returned
list that can be used to construct meaningful error messages.
validate_*()
: check a condition, and error if it does not pass. These
functions call their corresponding check function, and
then provide a default error message. If you, as a developer, want a
different error message, then call the check_*()
function yourself,
and provide your own validation function.
Other validation functions:
validate_column_names()
,
validate_outcomes_are_binary()
,
validate_outcomes_are_factors()
,
validate_outcomes_are_numeric()
,
validate_outcomes_are_univariate()
,
validate_prediction_size()
,
validate_predictors_are_numeric()
# All good check_no_formula_duplication(y ~ x) # Not good! check_no_formula_duplication(y ~ y) # This is generally okay check_no_formula_duplication(y ~ log(y)) # But you can be more strict check_no_formula_duplication(y ~ log(y), original = TRUE) # This would throw an error try(validate_no_formula_duplication(log(y) ~ log(y)))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.