Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

is_formula

Is object a formula?


Description

is_formula() tests if x is a call to ~. is_bare_formula() tests in addition that x does not inherit from anything else than "formula".

Usage

is_formula(x, scoped = NULL, lhs = NULL)

is_bare_formula(x, scoped = NULL, lhs = NULL)

Arguments

x

An object to test.

scoped

A boolean indicating whether the quosure is scoped, that is, has a valid environment attribute. If NULL, the scope is not inspected.

lhs

A boolean indicating whether the formula or definition has a left-hand side. If NULL, the LHS is not inspected.

Details

The 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.

Examples

x <- disp ~ am
is_formula(x)

is_formula(~10)
is_formula(10)

is_formula(quo(foo))
is_bare_formula(quo(foo))

# Note that unevaluated formulas are treated as bare formulas even
# though they don't inherit from "formula":
f <- quote(~foo)
is_bare_formula(f)

# However you can specify `scoped` if you need the predicate to
# return FALSE for these unevaluated formulas:
is_bare_formula(f, scoped = TRUE)
is_bare_formula(eval(f), scoped = TRUE)

rlang

Functions for Base Types and Core R and 'Tidyverse' Features

v0.4.11
MIT + file LICENSE
Authors
Lionel Henry [aut, cre], Hadley Wickham [aut], mikefc [cph] (Hash implementation based on Mike's xxhashlite), Yann Collet [cph] (Author of the embedded xxHash library), RStudio [cph]
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.