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.
Here’s a summary of the various R Markdown output types and the print engines that support them.
Print Engine | Function | HTML | RTF | Word | |
---|---|---|---|---|---|
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
Key | |
---|---|
Output fully supported | |
Formatted output, but missing indentation, footnotes, spanning headers | |
No formatted output | |
Output not supported | |
Under development |
Any {gtsummary} table can be converted to one of the types in the table above. For example, the code below prints a {gtsummary} table as a {flextable} table, instead of the default {gt} table.
tbl_summary(trial) %>%
as_flex_table()
Tables printed with {gtsummary} can be seamlessly integrated into R markdown documents. Currently, {gt} supports HTML output, with LaTeX and RTF planned for the future. The table below summarizes the default print engine utilized for {gtsummary} tables for various R Markdown output formats.
Output Type | Default Engine | Details |
---|---|---|
HTML |
{gt} |
{gt} output is fully supported with HTML output. |
kable |
You may force printing with {gt} by converting a {gtsummary} object to {gt} with | |
RTF |
kable |
You may force printing with {gt} by converting a {gtsummary} object to {gt} with |
Word |
flextable |
{flextable} is the default print engine for Word output, as {gt} does not support Word. If {flextable} is not installed, kable is used. |
When a table is printed with knitr::kable()
the
resulting table is less full featured compared to a table printed with
{gt}. For example, the table will not contain
footnotes, spanning headers, or row indentation.
An example R markdown report using {gtsummary} has been included with the package. To open the example file, run the following command in the R console.
library(gtsummary)
system.file(package = "gtsummary") %>%
file.path("rmarkdown_example/gtsummary_rmarkdown_html.Rmd") %>%
file.edit()
To print {gtsummary} tables using LaTeX, utilize one of the supporting print engines.
# build gtsummary table
<- tbl_summary(trial)
tbl
# using the {gt} package
as_gt(tbl) %>% gt::as_latex()
# using the {huxtable} package
as_hux_table(tbl) %>% huxtable::to_latex()
# using the {kableExtra} package
as_kable_extra(tbl, format = "latex")
# using the knitr::kable function
as_kable(tbl, format = "latex")
Use the {gt} package’s gt::gtsave()
function to save
images of {gtsummary} tables.
tbl_summary(trial) %>% # build gtsummary table
as_gt() %>% # convert to gt table
::gtsave( # save table as image
gtfilename = "my_table_image.png"
)
When printing {gt} or {gtsummary} tables in a loop, use
print()
and results = 'asis'
in the R markdown
chunk.
```{r loop_print, results = 'asis'}
for (i in 1) {
tbl <- tbl_summary(trial) # build gtsummary table
print(tbl) # print table
}
```
If print(tbl)
does not work for you, try either
knitr::knit_print(tbl)
or
cat(knitr::knit_print(tbl))
.
Icons from icons8