Returns a list with the names of all variables, including response value and random effects.
find_variables( x, effects = c("all", "fixed", "random"), component = c("all", "conditional", "zi", "zero_inflated", "dispersion", "instruments", "smooth_terms"), flatten = FALSE )
| x | A fitted model. |
|---|---|
| effects | Should variables for fixed effects, random effects or both be returned? Only applies to mixed models. May be abbreviated. |
| component | Should all predictor variables, predictor variables for the conditional model, the zero-inflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zero-inflated and/or dispersion formula, or to models with instrumental variable (so called fixed-effects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. |
| flatten | Logical, if |
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_terms is that find_variables()
returns each variable name only once, while find_terms() may return a
variable multiple times in case of transformations or when arithmetic expressions
were used in the formula.
library(lme4) data(cbpp) data(sleepstudy) # some data preparation... cbpp$trials <- cbpp$size - cbpp$incidence sleepstudy$mygrp <- sample(1:5, size = 180, replace = TRUE) sleepstudy$mysubgrp <- NA for (i in 1:5) { filter_group <- sleepstudy$mygrp == i sleepstudy$mysubgrp[filter_group] <- sample(1:30, size = sum(filter_group), replace = TRUE) } m1 <- glmer( cbind(incidence, size - incidence) ~ period + (1 | herd), data = cbpp, family = binomial ) find_variables(m1)#> $response #> [1] "incidence" "size" #> #> $conditional #> [1] "period" #> #> $random #> [1] "herd" #>#>find_variables(m2)#> $response #> [1] "Reaction" #> #> $conditional #> [1] "Days" #> #> $random #> [1] "mysubgrp" "mygrp" "Subject" #>find_variables(m2, flatten = TRUE)#> [1] "Reaction" "Days" "mysubgrp" "mygrp" "Subject"