Skip to contents

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.

Usage

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

Arguments

x

(data.frame)
A tidy tibble as produced by tidy_*() functions.

no_reference_row

(tidy-select)
Variables for those no reference row should be added. See also all_categorical() and all_dichotomous().

model

(a model object, e.g. glm)
The corresponding model, if not attached to x.

quiet

(logical)
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 <-
    glm(
      Survived ~ Class + Age + Sex,
      data = df, weights = df$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()
}
}