## 10.3 Other packages for creating tables

There are many other R packages that can be used to generate tables. The main reason that I introduced `kable()`

(Section 10.1) and **kableExtra** (Section 10.2) is not that they are better than other packages, but because I’m familiar with only them.^{14} Next I will list the packages that I’m aware of but not very familiar with. You can check them out by yourself, and decide which one fits your purpose best.

**flextable**(Gohel 2020a) and**huxtable**(Hugh-Jones 2020): If you are looking for a table package that supports the widest range of output formats,**flextable**and**huxtable**are probably the two best choices. They all support HTML, LaTeX, and Office formats, and contain most common table features (e.g., conditional formatting). More information about**flextable**can be found at https://davidgohel.github.io/flextable/, and the documentation of**huxtable**is at https://hughjonesd.github.io/huxtable/.**gt**(Iannone, Cheng, and Schloerke 2020): Allows you to compose a table by putting together different parts of the table, such as the table header (title and subtitle), the column labels, the table body, row group labels, and the table footer. Some parts are optional. You can also format numbers and add background shading to cells. Currently**gt**mainly supports HTML output.^{15}You can find more information about it at https://gt.rstudio.com.**formattable**(Ren and Russell 2016): Provides some utility functions to format numbers (e.g.,`percent()`

and`accounting()`

), and also functions to style table columns (e.g., format the text, annotate numbers with background shading or color bars, or add icons in cells). Like**gt**, this package also primarily supports the HTML format. You can find more information about it from its GitHub project at https://github.com/renkun-ken/formattable.**DT**(Xie, Cheng, and Tan 2020): As its author, I think I’m familiar with this package, but I did not introduce it in a separate section because it only supports the HTML format.**DT**is built on top of the JavaScript library**DataTables**, which can turn a static table into an interactive table on an HTML page. You may sort, search, and paginate the table.**DT**also supports formatting the cells, works with Shiny to build interactive applications, and has included a large number of**DataTables**extensions (e.g., you may export the table to Excel, or interactively reorder columns). See the package repository for more information: https://github.com/rstudio/DT.**reactable**(Lin 2020): Similar to**DT**, this package also creates interactive tables based on a JavaScript library. Frankly speaking, it looks better than**DT**in several aspects in my eyes (such as row grouping and aggregation, and embedding HTML widgets). Had**reactable**existed in 2015, I would not have developed**DT**. That said,**reactable**does not contain all the features of**DT**, so you may read its documentation and see which one fits your purpose better: https://glin.github.io/reactable/.**rhandsontable**(Owen 2018): Also similar to**DT**, and has an Excel feel (e.g., you can edit data directly in the table). Visit https://jrowen.github.io/rhandsontable/ to learn more about it.**pixiedust**(Nutter 2020): Features creating tables for models (such as linear models) converted through the**broom**package (Robinson, Hayes, and Couch 2020). It supports Markdown, HTML, and LaTeX output formats. Its repository is at https://github.com/nutterb/pixiedust.**stargazer**(Hlavac 2018): Features formatting regression models and summary statistics tables. The package is available on CRAN at https://cran.r-project.org/package=stargazer.**xtable**(Dahl et al. 2019): Perhaps the oldest package for creating tables—the first release was made in 2000. It supports both LaTeX and HTML formats. The package is available on CRAN at https://cran.r-project.org/package=xtable.

I’m not going to introduce the rest of packages, but will just list them here: **tables** (Murdoch 2020), **pander** (Daróczi and Tsegelskyi 2018), **tangram** (Garbett 2020), **ztable** (Moon 2020), and **condformat** (Oller Moreno 2020).

### References

*Xtable: Export Tables to LaTeX or HTML*. http://xtable.r-forge.r-project.org/.

*Pander: An r Pandoc Writer*. http://rapporter.github.io/pander.

*Tangram: The Grammar of Tables*. https://github.com/spgarbet/tangram.

*Flextable: Functions for Tabular Reporting*. https://davidgohel.github.io/flextable/.

*Stargazer: Well-Formatted Regression and Summary Statistics Tables*. https://CRAN.R-project.org/package=stargazer.

*Huxtable: Easily Create and Style Tables for LaTeX, HTML and Other Formats*. https://hughjonesd.github.io/huxtable.

*Gt: Easily Create Presentation-Ready Display Tables*. https://github.com/rstudio/gt.

*Reactable: Interactive Data Tables Based on React Table*. https://CRAN.R-project.org/package=reactable.

*Ztable: Zebra-Striped Tables in LaTeX and HTML Formats*. https://github.com/cardiomoon/ztable.

*Tables: Formula-Driven Table Generation*. https://r-forge.r-project.org/projects/tables/.

*Pixiedust: Tables so Beautifully Fine-Tuned You Will Believe It’s Magic*. https://github.com/nutterb/pixiedust.

*Condformat: Conditional Formatting in Data Frames*. http://github.com/zeehio/condformat.

*Rhandsontable: Interface to the Handsontable.js Library*. http://jrowen.github.io/rhandsontable/.

*Formattable: Create Formattable Data Structures*. https://CRAN.R-project.org/package=formattable.

*Broom: Convert Statistical Objects into Tidy Tibbles*. https://CRAN.R-project.org/package=broom.

*DT: A Wrapper of the JavaScript Library DataTables*. https://github.com/rstudio/DT.

Frankly speaking, I rarely use tables by myself, so I’m not highly motivated to learn how to create sophisticated tables.↩︎

If you need the support for other output formats such as LaTeX and Word, the

**gtsummary**package (Sjoberg et al. 2020) has made some extensions based on**gt**that look very promising: https://github.com/ddsjoberg/gtsummary.↩︎