Merge gtsummary tables, e.g. tbl_regression, tbl_uvregression, tbl_stack,
tbl_summary, tbl_svysummary, etc.
tbl_merge(tbls, tab_spanner = NULL, merge_vars = NULL)(list)
List of gtsummary objects to merge
(character)
Character vector specifying the spanning headers.
Must be the same length as tbls. The
strings are interpreted with gt::md.
Must be same length as tbls argument. Default is NULL, and places
a default spanning header. If FALSE, no header will be placed.
(character)
Column names that are used as the merge IDs.
The default is NULL, which merges on
c(any_of(c("variable", "row_type", "var_label", "label"), cards::all_ard_groups()).
Any column name included here that does not appear in all tables, will
be removed.
A 'tbl_merge' object
# Example 1 ----------------------------------
# Side-by-side Regression Models
library(survival)
t1 <-
glm(response ~ trt + grade + age, trial, family = binomial) %>%
tbl_regression(exponentiate = TRUE)
t2 <-
coxph(Surv(ttdeath, death) ~ trt + grade + age, trial) %>%
tbl_regression(exponentiate = TRUE)
tbl_merge(
tbls = list(t1, t2),
tab_spanner = c("**Tumor Response**", "**Time to Death**")
)
OR
95% CI
p-value
HR
95% CI
p-value
Abbreviations: CI = Confidence Interval, HR = Hazard Ratio, OR = Odds Ratio
# Example 2 ----------------------------------
# Descriptive statistics alongside univariate regression, with no spanning header
t3 <-
trial[c("age", "grade", "response")] %>%
tbl_summary(missing = "no") %>%
add_n() %>%
modify_header(stat_0 ~ "**Summary Statistics**")
t4 <-
tbl_uvregression(
trial[c("ttdeath", "death", "age", "grade", "response")],
method = coxph,
y = Surv(ttdeath, death),
exponentiate = TRUE,
hide_n = TRUE
)
tbl_merge(tbls = list(t3, t4)) %>%
modify_spanning_header(everything() ~ NA_character_)
Characteristic
N
Summary Statistics1
HR
95% CI
p-value
Abbreviations: CI = Confidence Interval, HR = Hazard Ratio
1 Median (Q1, Q3); n (%)