Skip to contents

Including variables used only in an interaction.

Usage

model_list_variables(
  model,
  labels = NULL,
  only_variable = FALSE,
  add_var_type = FALSE,
  instrumental_suffix = " (instrumental)"
)

# Default S3 method
model_list_variables(
  model,
  labels = NULL,
  only_variable = FALSE,
  add_var_type = FALSE,
  instrumental_suffix = " (instrumental)"
)

# S3 method for class 'lavaan'
model_list_variables(
  model,
  labels = NULL,
  only_variable = FALSE,
  add_var_type = FALSE,
  instrumental_suffix = " (instrumental)"
)

# S3 method for class 'logitr'
model_list_variables(
  model,
  labels = NULL,
  only_variable = FALSE,
  add_var_type = FALSE,
  instrumental_suffix = " (instrumental)"
)

Arguments

model

(a model object, e.g. glm)
A model object.

labels

(list or string)
An optional named list or named vector of custom variable labels.

only_variable

(logical)
If TRUE, will return only "variable" column.

add_var_type

(logical)
If TRUE, add var_nlevels and var_type columns.

instrumental_suffix

(string)
Suffix added to variable labels for instrumental variables (fixest models). NULL to add nothing.

Value

A tibble with three columns:

  • variable: the corresponding variable

  • var_class: class of the variable (cf. stats::.MFclass())

  • label_attr: variable label defined in the original data frame with the label attribute (cf. labelled::var_label())

  • var_label: a variable label (by priority, labels if defined, label_attr if available, otherwise variable)

If add_var_type = TRUE:

  • var_type: "continuous", "dichotomous" (categorical variable with 2 levels), "categorical" (categorical variable with 3 or more levels), "intercept" or "interaction"

  • var_nlevels: number of original levels for categorical variables

Examples

# \donttest{
  df <- Titanic |>
    dplyr::as_tibble() |>
    dplyr::mutate(Survived = factor(Survived, c("No", "Yes")))
  glm(
    Survived ~ Class + Age:Sex,
    data = df, weights = df$n,
    family = binomial
  ) |>
  model_list_variables()
#> # A tibble: 6 × 4
#>   variable  var_class label_attr var_label
#>   <chr>     <chr>     <chr>      <chr>    
#> 1 Survived  factor    NA         Survived 
#> 2 Class     character NA         Class    
#> 3 Age       character NA         Age      
#> 4 Sex       character NA         Sex      
#> 5 (weights) numeric   NA         (weights)
#> 6 Age:Sex   NA        NA         Age:Sex  

lm(
   Sepal.Length ~ poly(Sepal.Width, 2) + Species,
   data = iris,
   contrasts = list(Species = contr.sum)
  ) |>
  model_list_variables()
#> # A tibble: 3 × 4
#>   variable     var_class label_attr var_label   
#>   <chr>        <chr>     <chr>      <chr>       
#> 1 Sepal.Length numeric   NA         Sepal.Length
#> 2 Sepal.Width  nmatrix.2 NA         Sepal.Width 
#> 3 Species      factor    NA         Species     

glm(
  response ~ poly(age, 3) + stage + grade * trt,
  na.omit(gtsummary::trial),
  family = binomial,
) |>
  model_list_variables()
#> # A tibble: 6 × 4
#>   variable  var_class label_attr             var_label             
#>   <chr>     <chr>     <chr>                  <chr>                 
#> 1 response  integer   Tumor Response         Tumor Response        
#> 2 age       nmatrix.3 NA                     age                   
#> 3 stage     factor    T Stage                T Stage               
#> 4 grade     factor    Grade                  Grade                 
#> 5 trt       character Chemotherapy Treatment Chemotherapy Treatment
#> 6 grade:trt NA        NA                     grade:trt             
# }