Extracts the variable names and function names from an R expression by
traversing the expression structure. Internal helper function for
new_bru_used() and bru_used().
Usage
bru_used_vars(x, result = new_bru_used_vars())
new_bru_used_vars(
x = list(vars = character(0), funs = character(0), objects = list())
)
# Default S3 method
bru_used_vars(x, result = new_bru_used_vars())
# S3 method for class '`<-`'
bru_used_vars(x, result = new_bru_used_vars())
# S3 method for class 'call'
bru_used_vars(x, result = new_bru_used_vars())
# S3 method for class 'expression'
bru_used_vars(x, result = new_bru_used_vars())
# S3 method for class 'quosure'
bru_used_vars(x, result = new_bru_used_vars())
# S3 method for class 'formula'
bru_used_vars(x, result = new_bru_used_vars())
# S3 method for class 'bru_used_vars'
format(x, ...)
# S3 method for class 'bru_used_vars'
print(x, ...)Value
A bru_used_vars object with elements
- vars
character; names of directly accessed variables.
- funs
character; names of functions called.
- objects
named list; one character vector per container objects with variables names accessed via
$,[[, or[. If the access is ambiguous, the container object name is stored invars.
See also
Other bru_used:
bru_used(),
bru_used_update(),
new_bru_used()
Examples
bru_used_vars(~.)
#> vars: {.}, funs: {}, objects[]
bru_used_vars(~ a + b + c_latent + d_eval())
#> vars: {a, b, c_latent}, funs: {+, d_eval}, objects[]
# Ignores the LHS:
bru_used_vars(a ~ b)
#> vars: {b}, funs: {}, objects[]
# Detects variables accessed via pronouns and objects,
# as well as function calls:
bru_used_vars(~ cos(x$z) + y_eval() + .latent$"q")
#> vars: {}, funs: {+, cos, y_eval}, objects[x: {z}, .latent: {q}]