tinytable is a small but powerful R package to draw beautiful tables
in a variety of formats: HTML, LaTeX, Word[^1], PDF, PNG, Markdown, and
Typst. The user interface is minimalist and easy to learn, while giving
users access to powerful frameworks to create endlessly customizable
tables.
https://vincentarelbundock.github.io/tinytable/
[!NOTE]
The documentation on this website uses the latest development version of
tinytable. This version can normally be installed from R-Universe:
r install.packages('tinytable', repos = c('https://vincentarelbundock.r-universe.dev', 'https://cloud.r-project.org'))or from Github:
r remotes::install_github("vincentarelbundock/tinytable")Remember to restart
Rcompletely after installation, to ensure that the latest version is loaded.The documentation for the current version of
tinytableis available on the CRAN package page.
There are already many excellent table-drawing packages in the R
ecosystem. Why release a new one? As the maintainer of
modelsummary, I needed a table-drawing
package which was:
R package.[^3]To achieve these goals, the design philosophy of tinytable rests on
three pillars:
1) Data is separate from style. The code that this package creates
keeps the content of a table separate from the style sheet that
applies to its cells. This is in contrast to other R packages that
modify the actual text in each cell to style it. Keeping data and
style separate allows tinytable to create human-readable files
which are easy to edit, debug, and extend. It also enables
developers to keep a simpler code base, with minimal use of messy
regular expressions.
2) Flexibility. Users’ needs are extremely varied, and a
table-drawing package must be flexible enough to accomodate
different ideas. To achieve this, tinytable builds on
battle-tested and versatile frameworks like Bootstrap for HTML and
tabularray for LaTeX.
3) Lightweight. Some of the most popular table-drawing packages in the
R ecosystem are very heavy: A single library() call can
sometimes load upwards of 65 R packages. In contrast, tinytable
imports zero 3rd party R package by default.
The best feature of tinytable is its simplicity. To draw a table,
simply call the tt() function with your data frame as the first
argument:
library(tinytable)
x <- mtcars[1:5, 1:5]
tt(x)
More complex tables can be created by calling arguments and chaining
functions together. In the next example, we add a caption, footnote,
colors, styles, and spanning column headers:
wzxhzdk:1
## Tutorial
The `tinytable` 0.15.0.1 tutorial will take you much further. It is
available in HTML and PDF formats at:
[^1]: Styling options in Word are somewhat limited. See the FAQ page and
the `style_tt()` documentation for details.
[^2]: Other formats like Markdown and Typst are also available, but less
flexible.
[^3]: Some extra packages can be imported to access specific
functionality, such as integration with Quarto, inserting `ggplot2`
objects as inline plots, and saving tables to PNG images or PDF
documents.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.