For categorical variables with a treatment contrast (stats::contr.treatment()), a SAS contrast (stats::contr.SAS()) a sum contrast (stats::contr.sum()), or successive differences contrast (MASS::contr.sdif()) add a reference row.

tidy_add_reference_rows(
  x,
  no_reference_row = NULL,
  model = tidy_get_model(x),
  quiet = FALSE
)

Arguments

x

a tidy tibble

no_reference_row

a vector indicating the name of variables for those no reference row should be added. Accepts tidyselect syntax. Default is NULL. See also all_categorical() and all_dichotomous()

model

the corresponding model, if not attached to x

quiet

logical argument whether broom.helpers should not return a message when requested output cannot be generated. Default is FALSE

Details

The added reference_row column will be equal to:

  • TRUE for a reference row;

  • FALSE for a normal row of a variable with a reference row;

  • NA for variables without a reference row.

If the contrasts column is not yet available in x, tidy_add_contrasts() will be automatically applied.

tidy_add_reference_rows() will not populate the label of the reference term. It is therefore better to apply tidy_add_term_labels() after tidy_add_reference_rows() rather than before. Similarly, it is better to apply tidy_add_reference_rows() before tidy_add_n().

Examples

if (FALSE) { # interactive()
if (.assert_package("gtsummary", boolean = TRUE)) {
  df <- Titanic %>%
    dplyr::as_tibble() %>%
    dplyr::mutate(Survived = factor(Survived, c("No", "Yes")))

  res <- df %>%
    glm(
      Survived ~ Class + Age + Sex,
      data = ., weights = .$n, family = binomial,
      contrasts = list(Age = contr.sum, Class = "contr.SAS")
    ) %>%
    tidy_and_attach()
  res %>% tidy_add_reference_rows()
  res %>% tidy_add_reference_rows(no_reference_row = all_dichotomous())
  res %>% tidy_add_reference_rows(no_reference_row = "Class")

  glm(
    response ~ stage + grade * trt,
    gtsummary::trial,
    family = binomial,
    contrasts = list(
      stage = contr.treatment(4, base = 3),
      grade = contr.treatment(3, base = 2),
      trt = contr.treatment(2, base = 2)
    )
  ) %>%
    tidy_and_attach() %>%
    tidy_add_reference_rows()
}
}