is_formula() tests if
x is a call to
tests in addition that
x does not inherit from anything else than
TRUE for both formulas and
definitions of the type
a := b.
is_formula(x, scoped = NULL, lhs = NULL) is_bare_formula(x, scoped = NULL, lhs = NULL) is_formulaish(x, scoped = NULL, lhs = NULL)
An object to test.
A boolean indicating whether the quosure or formula
is scoped, that is, has a valid environment attribute. If
A boolean indicating whether the formula
or definition has a left-hand side. If
scoped argument patterns-match on whether the scoped bundled
with the quosure is valid or not. Invalid scopes may happen in
nested quotations like
~~expr, where the outer quosure is validly
scoped but not the inner one. This is because
~ saves the
environment when it is evaluated, and quoted formulas are by
definition not evaluated.
x <- disp ~ am is_formula(x)#>  TRUEis_formula(~10)#>  TRUEis_formula(10)#>  FALSEis_formula(quo(foo))#>  TRUEis_bare_formula(quo(foo))#>  FALSE# Note that unevaluated formulas are treated as bare formulas even # though they don't inherit from "formula": f <- quote(~foo) is_bare_formula(f)#>  FALSE# However you can specify `scoped` if you need the predicate to # return FALSE for these unevaluated formulas: is_bare_formula(f, scoped = TRUE)#>  FALSEis_bare_formula(eval(f), scoped = TRUE)#>  TRUE# There is also a variant that returns TRUE for definitions in # addition to formulas: is_formulaish(a ~ b)#>  TRUEis_formulaish(a := b)#>  TRUE