tbl_stack: Stack tables

View source: R/tbl_stack.R

tbl_stackR Documentation

Stack tables

Description

Assists in patching together more complex tables. tbl_stack() appends two or more gtsummary tables.

Usage

tbl_stack(
  tbls,
  group_header = NULL,
  quiet = FALSE,
  attr_order = seq_along(tbls),
  tbl_ids = NULL
)

Arguments

tbls

(list)
List of gtsummary objects

group_header

(character)
Character vector with table headers where length matches the length of tbls

quiet

(scalar logical)
Logical indicating whether to suppress additional messaging. Default is FALSE.

attr_order

(integer) [Experimental]
Set the order table attributes are set. Tables are stacked in the order they are passed in the tbls argument: use attr_order to specify the order the table attributes take precedent. For example, to use the header from the second table specify attr_order=2. Default is to set precedent in the order tables are passed.

tbl_ids

(character)
Optional character vector of IDs that will be assigned to the input tables. The ID is assigned by assigning a name to the tbls list, which is returned in x$tbls.

Value

A tbl_stack object

Author(s)

Daniel D. Sjoberg

Examples


# Example 1 ----------------------------------
# stacking two tbl_regression objects
t1 <-
  glm(response ~ trt, trial, family = binomial) %>%
  tbl_regression(
    exponentiate = TRUE,
    label = list(trt ~ "Treatment (unadjusted)")
  )

t2 <-
  glm(response ~ trt + grade + stage + marker, trial, family = binomial) %>%
  tbl_regression(
    include = "trt",
    exponentiate = TRUE,
    label = list(trt ~ "Treatment (adjusted)")
  )

tbl_stack(list(t1, t2))

# Example 2 ----------------------------------
# stacking two tbl_merge objects
library(survival)
t3 <-
  coxph(Surv(ttdeath, death) ~ trt, trial) %>%
  tbl_regression(
    exponentiate = TRUE,
    label = list(trt ~ "Treatment (unadjusted)")
  )

t4 <-
  coxph(Surv(ttdeath, death) ~ trt + grade + stage + marker, trial) %>%
  tbl_regression(
    include = "trt",
    exponentiate = TRUE,
    label = list(trt ~ "Treatment (adjusted)")
  )

# first merging, then stacking
row1 <- tbl_merge(list(t1, t3), tab_spanner = c("Tumor Response", "Death"))
row2 <- tbl_merge(list(t2, t4))

tbl_stack(list(row1, row2), group_header = c("Unadjusted Analysis", "Adjusted Analysis"))


ddsjoberg/gtsummary documentation built on June 11, 2025, 10:29 p.m.