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.

find_terms(x, flatten = FALSE, ...)



A fitted model.


Logical, if TRUE, the values are returned as character vector, not as list. Duplicated values are removed.


Currently not used.


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


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.


library(lme4) data(sleepstudy) m <- lmer( log(Reaction) ~ Days + I(Days^2) + (1 + Days + exp(Days) | Subject), data = sleepstudy )
#> Warning: Model failed to converge with max|grad| = 14.7145 (tol = 0.002, component 1)
#> Warning: Model is nearly unidentifiable: very large eigenvalue #> - Rescale variables?;Model is nearly unidentifiable: large eigenvalue ratio #> - Rescale variables?
#> $response #> [1] "log(Reaction)" #> #> $conditional #> [1] "Days" "I(Days^2)" #> #> $random #> [1] "Days" "exp(Days)" "Subject" #>