Merge two or more columns in a gtsummary table.
Use
show_header_names()
to print underlying column names.
modify_column_merge(x, pattern, rows = NULL)
gtsummary object
glue syntax string indicating how to merge columns in
x$table_body
. For example, to construct a confidence interval
use "{conf.low}, {conf.high}"
.
predicate expression to select rows in x$table_body
.
Can be used to style footnote, formatting functions, missing symbols,
and text formatting. Default is NULL
. See details below.
gtsummary table
Calling this function merely records the instructions to merge columns.
The actual merging occurs when the gtsummary table is printed or converted
with a function like as_gt()
.
Because the column merging is delayed, it is recommended to perform
major modifications to the table, such as those with tbl_merge()
and
tbl_stack()
, before assigning merging instructions. Otherwise,
unexpected formatting may occur in the final table.
If this functionality is used in conjunction with tbl_stack()
(which
includes tbl_uvregression()
), there is potential issue with printing.
When columns are stack AND when the column-merging is
defined with a quosure, you may run into issues due to the loss of the
environment when 2 or more quosures are combined. If the expression
version of the quosure is the same as the quosure (i.e. no evaluated
objects), there should be no issues. Regardless, this argument is used
internally with care, and it is not recommended for users.
There are planned updates to the implementation of this function
with respect to the pattern=
argument.
Currently, this function replaces a numeric column with a
formatted character column following pattern=
.
Once gt::cols_merge()
gains the rows=
argument the
implementation will be updated to use it, which will keep
numeric columns numeric. For the vast majority of users,
the planned change will be go unnoticed.
If this functionality is used in conjunction with tbl_stack()
(which
includes tbl_uvregression()
), there is potential issue with printing.
When columns are stack AND when the column-merging is
defined with a quosure, you may run into issues due to the loss of the
environment when 2 or more quosures are combined. If the expression
version of the quosure is the same as the quosure (i.e. no evaluated
objects), there should be no issues. Regardless, this argument is used
internally with care, and it is not recommended for users.
Example 1
Example 2
Other Advanced modifiers:
modify_column_alignment()
,
modify_column_hide()
,
modify_column_indent()
,
modify_fmt_fun()
,
modify_table_body()
,
modify_table_styling()
# \donttest{
# Example 1 ----------------------------------
modify_column_merge_ex1 <-
trial %>%
select(age, marker, trt) %>%
tbl_summary(by = trt, missing = "no") %>%
add_p(all_continuous() ~ "t.test",
pvalue_fun = ~ style_pvalue(., prepend_p = TRUE)
) %>%
modify_fmt_fun(statistic ~ style_sigfig) %>%
modify_column_merge(pattern = "t = {statistic}; {p.value}") %>%
modify_header(statistic ~ "**t-test**")
# Example 2 ----------------------------------
modify_column_merge_ex2 <-
lm(marker ~ age + grade, trial) %>%
tbl_regression() %>%
modify_column_merge(
pattern = "{estimate} ({ci})",
rows = !is.na(estimate)
)
# }