
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:
# install.packages("devtools")
devtools::install_github("JonasMoss/subformula")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 + cylNow 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.4991If you encounter a bug, have a feature request or need some help, open a Github issue. This project follows a Contributor Code of Conduct.