Utilities for working with formulas, expressions, calls and other R objects
Utilities for Formulas, Expressions, Calls, Assignments and Other R Objects
These utilities facilitate the programmatic manipulations of formulas,
expressions, calls, names, symbols and other R language objects. These objects
all share the same structure: a left-hand side (lhs), an operator (op) and
right-hand side (rhs). This packages provides methods for accessing and
modifying this structures as well as extracting and replacing names and
symbols from these objects.
It is easiest to understand through the [#Examples].
install.packages('formula.tools')
devtools::install_github("decisionpatterns/formula.tools")
lhs
: get/set the left-hand side of an objectrhs
: get/set the right-hand side of an objectop
: get/set the operator of an objectget.vars
: like base::all.vars
except all symbols (e.g. .
) can bey ~ .
can return the correctlhs.vars
: get.vars
on lhs of the objectrhs.vars
: get.vars
on rhs of the objectterms
: get the terms from an object by interpolating special symbols
(e.g. .
) using a data set data. Extends stats::terms()
split_terms
: split (mathematical) terms into an expression vector without
interpolating special symbols (e.g. .
)
Formula terms and operators can be accessed or changed.
## Get parts of formula
form <- y ~ x
lhs(form) # y
lhs(form) <- quote(t)
form # t ~ x
rhs(form) # x
rhs(form) <- 1
form # t ~ 1
## Get variables (names)
form <- y ~ m*x + b
get.vars(form) # "y" "m" "x" "b"
lhs.vars(form) # "y"
rhs.vars(form) # "m" "x" "b"
## Split terms
terms(form)
split_terms(form) # expression(Species ~ . - Sepal.Length)
split_terms( quote(a+(b+(c+d))), recursive=TRUE ) # expression(a, b, c, d)