This is a function meant for advanced users to gain
more control over the characteristics of the resulting
gtsummary table by directly modifying .$table_styling
modify_table_styling(
x,
columns,
rows = NULL,
label = NULL,
spanning_header = NULL,
hide = NULL,
footnote = NULL,
footnote_abbrev = NULL,
align = NULL,
missing_symbol = NULL,
fmt_fun = NULL,
text_format = NULL,
undo_text_format = FALSE,
text_interpret = c("md", "html"),
cols_merge_pattern = NULL
)
gtsummary object
vector or selector of columns in x$table_body
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.
string of column label(s)
string with text for spanning header
logical indicating whether to hide column from output
string with text for footnote
string with abbreviation definition, e.g.
"CI = Confidence Interval"
string indicating alignment of column, must be one of
c("left", "right", "center")
string indicating how missing values are formatted.
function that formats the statistics in the
columns/rows in columns=
and rows=
string indicated which type of text formatting to apply to the rows and columns.
Must be one of c("bold", "italic", "indent", "indent2")
. Do not assign
both "indent"
and "indent2"
to the same cell.
rarely used. Logical that undoes the indent, bold,
and italic styling when TRUE
string, must be one of "md"
or "html"
lifecycle::badge("experimental") glue-syntax string
indicating how to merge
columns in x$table_body
. For example, to construct a confidence interval
use "{conf.low}, {conf.high}"
. The first column listed in the pattern
string must match the single column name passed in columns=
.
The rows argument accepts a predicate expression that is used to specify
rows to apply formatting. The expression must evaluate to a logical when
evaluated in x$table_body
. For example, to apply formatting to the age rows
pass rows = variable == "age"
. A vector of row numbers is NOT acceptable.
A couple of things to note when using the rows=
argument.
You can use saved objects to create the predicate argument, e.g.
rows = variable == letters[1]
.
The saved object cannot share a name with a column in x$table_body
.
The reason for this is that in tbl_merge()
the columns are renamed,
and the renaming process cannot disambiguate the variable
column from
an external object named variable
in the following expression
rows = .data$variable = .env$variable
.
There are planned updates to the implementation of column merging.
Currently, this function replaces the numeric column with a
formatted character column following cols_merge_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.
Review the
gtsummary definition
vignette for information on .$table_styling
objects.
modify_table_body()
See gtsummary internals vignette
Review list, formula, and selector syntax used throughout gtsummary
Other Advanced modifiers:
modify_column_alignment()
,
modify_column_hide()
,
modify_column_indent()
,
modify_column_merge()
,
modify_fmt_fun()
,
modify_table_body()