The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
** 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
be interpolated from data, so that things like y ~ .
can
return the correct values.
lhs.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
<- y ~ x
form
lhs(form) # y
lhs(form) <- quote(t)
# t ~ x
form
rhs(form) # x
rhs(form) <- 1
# t ~ 1
form
## Get variables (names)
<- y ~ m*x + b
form
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)
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.