`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.