Returns the formula(s) for the different parts of a model (like fixed or random effects, zero-inflated component, ...). formula_ok() checks if a model formula has valid syntax regarding writing TRUE instead of T inside poly() and that no data names are used (i.e. no data$variable, but rather variable).

find_formula(x, verbose = TRUE, ...)

formula_ok(x, verbose = TRUE, ...)



A fitted model.


Toggle warnings.


Currently not used.


A list of formulas that describe the model. For simple models, only one list-element, conditional, is returned. For more complex models, the returned list may have following elements:

  • conditional, the "fixed effects" part from the model. One exception are DirichletRegModel models from DirichletReg, which has two or three components, depending on model.

     \item `random`, the "random effects" part from the model (or the
     `id` for gee-models and similar)
     \item `zero_inflated`, the "fixed effects" part from the
     zero-inflation component of the model
     \item `zero_inflated_random`, the "random effects" part from the
     zero-inflation component of the model
     \item `dispersion`, the dispersion formula
     \item `instruments`, for fixed-effects regressions like
     `ivreg::ivreg()`, `lfe::felm()` or `plm::plm()`, the
     instrumental variables
     \item `cluster`, for fixed-effects regressions like
     `lfe::felm()`, the cluster specification
     \item `correlation`, for models with correlation-component like
     `nlme::gls()`, the formula that describes the correlation structure
     \item `slopes`, for fixed-effects individual-slope models like
     `feisr::feis()`, the formula for the slope parameters
     \item `precision`, for `DirichletRegModel` models from
     \pkg{DirichletReg}, when parametrization (i.e. `model`) is


For models of class lme or gls the correlation-component is only returned, when it is explicitly defined as named argument (form), e.g. corAR1(form = ~1 | Mare)


m <- lm(mpg ~ wt + cyl + vs, data = mtcars)
#> $conditional
#> mpg ~ wt + cyl + vs
#> <environment: 0x7f96f6171808>
#> attr(,"class")
#> [1] "insight_formula" "list"           

if (require("lme4")) {
  m <- lmer(Sepal.Length ~ Sepal.Width + (1 | Species), data = iris)
  f <- find_formula(m)
#> [1] "Sepal.Length ~ Sepal.Width + (~1 | Species)"