subformula
Subformula
constructs the subformulas of a formula
object. Use this
to speed up tasks such as model selection and comparison of models.
Installation
Install the development version from GitHub with:
# install.packages("devtools")
devtools::install_github("JonasMoss/subformula")
Usage
There are two functions in the package, subformula
and fapply
.
subformulas
creates subformulas while fapply
is a member of the
apply
family tailored for fitting a statistical model for each formula
in a list of formulas.
A formula sub
is a subformula of formula
if (i) all the terms on
the right hand side of sub
are terms of form
and (ii) their left
hand sides are identical. subformula
finds every subformula of
formula
that contains each term in protected
.
library("subformula")
formula = mpg ~ wt + gear + cyl
subformula(formula, protected = ~ cyl)
#> [[1]]
#> mpg ~ cyl
#>
#> [[2]]
#> mpg ~ wt + cyl
#>
#> [[3]]
#> mpg ~ gear + cyl
#>
#> [[4]]
#> mpg ~ wt + gear + cyl
Now apply the subformulas to a model
function such as lm
with
fapply
.
models = fapply(subformula(formula, protected = ~ cyl), lm, data = mtcars)
lapply(models, AIC)
#> $`mpg ~ cyl`
#> [1] 169.3064
#>
#> $`mpg ~ wt + cyl`
#> [1] 156.0101
#>
#> $`mpg ~ gear + cyl`
#> [1] 170.7377
#>
#> $`mpg ~ wt + gear + cyl`
#> [1] 157.4991
How to Contribute or Get Help
If you encounter a bug, have a feature request or need some help, open a Github issue. This project follows a Contributor Code of Conduct.