# 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.

## Output Types

Here’s a summary of the various R Markdown output types and the print engines that support them.

Print Engine | Function | HTML | PDF | RTF | Word
--- | --- | --- | --- | --- | ---
gt | `as_gt()` |  |  |  |
kable | `as_kable()` |  |  |  |
flextable | `as_flextable()` |  |  |  |
kableExtra | `as_kable_extra()` |  |  |  |
tibble | `as_tibble()` |  |  |  |

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 kable table, instead of the default {gt} table.

    tbl_summary(trial) %>%
      as_kable()

## Default Printer

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.
PDF | kable | You may force printing with {gt} by converting a {gtsummary} object to {gt} with `as_gt()`, e.g. `tbl_summary(trial) %>% as_gt()`. PDF output is under development in the {gt} package. You may get a gorgeous table, but you may also get an error or a malformed table.
RTF | kable | You may force printing with {gt} by converting a {gtsummary} object to {gt} with `as_gt()`, e.g. `tbl_summary(trial) %>% as_gt()`. RTF output is under development in the {gt} package. You may get a gorgeous table, but you may also get an error or a malformed table.
Word | kable | kable is the default print engine for Word output, as {gt} does not support Word.

When a table is printed with `kintr::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.

## Example R Markdown Report

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()