GitHub - ddsjoberg/gtsummary: Presentation-Ready Data Summary and Analytic Result Tables (original) (raw)

R-CMD-check CRAN status Codecov test coverage DOI:10.32614/RJ-2021-053

gtsummary

The {gtsummary} package provides an elegant and flexible way to create publication-ready analytical and summary tables using the Rprogramming language. The {gtsummary} package summarizes data sets, regression models, and more, using sensible defaults with highly customizable capabilities.

By leveraging {broom},{gt}, and{labelled} packages, {gtsummary} creates beautifully formatted, ready-to-share summary and result tables in a single line of R code!

Check out the examples below, review thevignettes for a detailed exploration of the output options, and view thegalleryfor various customization examples.

Installation

The {gtsummary} package was written as a companion to the{gt} package from RStudio. You can install {gtsummary} with the following code.

install.packages("gtsummary")

Install the development version withpak::pkg_install("ddsjoberg/gtsummary", dependencies = TRUE)

Examples

Summary Table

Usetbl_summary()to summarize a data frame.

animated

Example basic table:

library(gtsummary)

summarize the data with our package

table1 <- trial |> tbl_summary(include = c(age, grade, response))

There are many customization options to add information (like comparing groups) and format results (like bold labels) in your table. See thetbl_summary()tutorial for many more options, or below for one example.

table2 <- tbl_summary( trial, include = c(age, grade, response), by = trt, # split table by group missing = "no" # don't list missing data separately ) |> add_n() |> # add column with total number of non-missing observations add_p() |> # test for a difference between groups modify_header(label = "Variable") |> # update the column header bold_labels()

Regression Models

Usetbl_regression()to easily and beautifully display regression model results in a table. See thetutorialfor customization options.

mod1 <- glm(response ~ trt + age + grade, trial, family = binomial)

t1 <- tbl_regression(mod1, exponentiate = TRUE)

Side-by-side Regression Models

You can also present side-by-side regression model results usingtbl_merge()

library(survival)

build survival model table

t2 <- coxph(Surv(ttdeath, death) ~ trt + grade + age, trial) |> tbl_regression(exponentiate = TRUE)

merge tables

tbl_merge_ex1 <- tbl_merge( tbls = list(t1, t2), tab_spanner = c("Tumor Response", "Time to Death") )

Review even more output options in the table gallery.

gtsummary + R Markdown

The {gtsummary} package was written to be a companion to the**{gt}** package from RStudio. But not all output types are supported by the {gt} package. Therefore, we have made it possible to print**{gtsummary}** tables with various engines.

Review the **gtsummary + R Markdown**vignette for details.

Save Individual Tables

{gtsummary} tables can also be saved directly to file as an image, HTML, Word, RTF, and LaTeX file.

tbl |> as_gt() |> gt::gtsave(filename = ".") # use extensions .png, .html, .docx, .rtf, .tex, .ltx

Additional Resources

Cite gtsummary

> citation("gtsummary")

To cite gtsummary in publications use:

  Sjoberg DD, Whiting K, Curry M, Lavery JA, Larmarange J. Reproducible summary tables with the gtsummary package.
  The R Journal 2021;13:570–80. https://doi.org/10.32614/RJ-2021-053.

A BibTeX entry for LaTeX users is

  @Article{gtsummary,
    author = {Daniel D. Sjoberg and Karissa Whiting and Michael Curry and Jessica A. Lavery and Joseph Larmarange},
    title = {Reproducible Summary Tables with the gtsummary Package},
    journal = {{The R Journal}},
    year = {2021},
    url = {https://doi.org/10.32614/RJ-2021-053},
    doi = {10.32614/RJ-2021-053},
    volume = {13},
    issue = {1},
    pages = {570-580},
  }

Contributing

Big thank you to @jeffreybears for the hex sticker!

Please note that the {gtsummary} project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms. Thank you to all contributors!