Subformula
constructs the subformulas of a formula
object. Use this to speed up tasks such as model selection and comparison of models.
Install the development version from GitHub with:
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
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.