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,
verbose = TRUE
)
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 |
verbose | Toggle warnings. |
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.
if (require("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)
m2 <- lmer(
Reaction ~ Days + (1 | mygrp / mysubgrp) + (1 | Subject),
data = sleepstudy
)
find_variables(m2)
find_variables(m2, flatten = TRUE)
}
#> boundary (singular) fit: see ?isSingular
#> [1] "Reaction" "Days" "mysubgrp" "mygrp" "Subject"