
sumExtras: “SUMmary table EXTRAS”
{sumExtras} reduces the repetitive boilerplate in
{gtsummary} workflows. One function replaces five. Stop
copy-pasting add_overall(), add_p(),
bold_labels(), and modify_header() on every
table. Call extras() once. The package also handles missing
value cleanup, automatic variable labeling from data dictionaries, group
header styling, and JAMA compact theming.
install.packages("sumExtras")# install.packages("pak")
pak::pak("kyleGrealis/sumExtras")library(sumExtras)
library(gtsummary)|
Standard |
With |
That single extras() call replaces
add_overall(), add_p(),
bold_labels(), bold_p(), and
modify_header(). It also standardizes missing values via
clean_table().
extras() – overall column, p-values (bolded), bold
labels, clean stylingclean_table() – standardize missing value displayadd_auto_labels() – automatic labeling from
dictionaries or data attributesuse_jama_theme() / theme_gt_compact() –
JAMA compact themesadd_group_styling() – bold/italic formatting for group
headersadd_group_colors() – background colors for group
headers (converts to {gt})get_group_rows() – extract group header row
indicesoptions(sumExtras.auto_labels = TRUE) – add labels
through the project without needing add_auto_labels() for
each tableoptions(sumExtras.prefer_dictionary = TRUE) – change
the labeling priorityvignette("sumExtras-intro") – getting startedvignette("labeling") – dictionary-based labelingvignette("themes") – JAMA themes for
{gtsummary} and {gt}vignette("styling") – group headers and advanced
formattingvignette("options") – .Rprofile options for
auto-labelingWhy not just use {gtsummary} directly?
You can. {sumExtras} wraps the formatting steps you repeat
on every table. If you only make one or two tables, you don’t need this
package.
What happens if something fails inside
extras()? It warns and continues. Your table
always renders. See the warn-and-continue design in
vignette("sumExtras-intro").
Why didn’t my dictionary labels show up? Your data
likely has label attributes that take priority. Set
options(sumExtras.prefer_dictionary = TRUE) or see
vignette("labeling").
Does extras() work with survey data?
Yes. tbl_svysummary tables get the same treatment as
tbl_summary.
Bug reports, feature requests, and feedback are welcome at https://github.com/kyleGrealis/sumExtras/issues.