Returns a list with the names of all terms, including response
value and random effects, "as is". This means, on-the-fly tranformations
or arithmetic expressions like `log()`

, `I()`

, `as.factor()`

etc. are
preserved.

## Arguments

- x
A fitted model.

- flatten
Logical, if

`TRUE`

, the values are returned as character vector, not as list. Duplicated values are removed.- verbose
Toggle warnings.

- ...
Currently not used.

## Value

A list with (depending on the model) following elements (character vectors):

`response`

, the name of the response variable`conditional`

, the names of the predictor variables from the*conditional*model (as opposed to the zero-inflated part of a model)`random`

, the names of the random effects (grouping factors)`zero_inflated`

, the names of the predictor variables from the*zero-inflated*part of the model`zero_inflated_random`

, the names of the random effects (grouping factors)`dispersion`

, the name of the dispersion terms`instruments`

, the names of instrumental variables

Returns `NULL`

if no terms could be found (for instance, due to
problems in accessing the formula).

## Note

The difference to `find_variables()`

is that `find_terms()`

may return a variable multiple times in case of multiple transformations
(see examples below), while `find_variables()`

returns each variable
name only once.

## Examples

```
if (require("lme4")) {
data(sleepstudy)
m <- suppressWarnings(lmer(
log(Reaction) ~ Days + I(Days^2) + (1 + Days + exp(Days) | Subject),
data = sleepstudy
))
find_terms(m)
}
#> $response
#> [1] "log(Reaction)"
#>
#> $conditional
#> [1] "Days" "I(Days^2)"
#>
#> $random
#> [1] "Days" "exp(Days)" "Subject"
#>
```