Sometime data viz people dump on tables a little bit (I’ve done it), as not being able to very efficiently communicate information. But this is probably because they are not doing it right.

Data visualization uses all these super-speed channels: position, color, size. In fact, visuals can also be quite strong in well formatted tables; they also use encoding and meaning for visual cues. With the help of table formatting packages, we can do better at making more attractive tables that aid efficient understanding and use! Nice!

Okay, but there are a lot of table formatting tools out there – just in R. How do I know which one to use?

This is the outline of an resource page on table formatting in R. Some parts are more filled in, but a lot is missing.

I’m using flipbooks. Because the formatting tools are so visual – it is a fun to watch the outputs evolve and it is easy to identify parts of the pipeline that are relevant to what you want to get done. I think they can help show how the different API’s work in a detailed and accessible way. Lot’s of info, but presented in stacks of slides, it doesn’t feel overwhelming – I hope!

I’m using a new flipbook function: embed_flipbook() and there are some wrinkles to work out. You may even see some error messages related to this! Work in progress. Embedded flipbooks benefit a lot from xaringanExtra, and flipbooks benefit from {xaringan} itself!

Tables have been an inspiration for moving the flipbook project forward too, to thinking more about flipbooks in documentation and specifically motivating “rotate” and “replace” modes for such work. Thanks especially {gt}!

## Motivation

Let’s start with a motivating example. Of my tables, my favorite is probably this named colors table. It is nice and compact and the you can copy and paste the names of the colors. I made it with {gt}. Then we’ll give you a birds eye view on some table formatting packages in R.

## Cross-Package Comparisons

### output formats

This comparison table summarizes a lot of information about table packages: what outputs the package supports. Even if you like the way a package’s table looks in html, if you can’t output to the format you need, you probably don’t want to go too far down that road.

It is put together by Daniel Sjoberg and use with permission! He built the table with {gt}, and we reproduce much of the build here.

Print Engine Function HTML PDF RTF Word

as_gt()

as_kable()

as_flex_table()

as_kable_extra()

as_hux_table()

as_tibble()

### Default table appearance

Error : Problem with filter() input ..1.
x subscript out of bounds
ℹ Input ..1 is line %in% which_highlight_frame.

### list column

Error : Problem with filter() input ..1.
x subscript out of bounds
ℹ Input ..1 is line %in% which_highlight_frame.

## Longer builds

This section just compares to builds from two separate packages, but would ideally compare the full set of packages. The results are similar, but APIs are a bit different.

### {flextable}

 Year The Country Name lifeExp Population gdpPercap 2002 Asia Afghanistan 42.129 25268405 726.7341 Europe Albania 75.651 3508512 4604.2117 Africa Algeria 70.994 31287142 5288.0404 Angola 41.003 10866106 2773.2873 Americas Argentina 74.340 38331121 8797.6407 Oceania Australia 80.370 19546792 30687.7547

### {huxtable}

yearcontinentcountrylifeExppopgdpPercap
2002AsiaAfghanistan42.125268405727
EuropeAlbania75.735085124.6e+03
AfricaAlgeria71  312871425.29e+03
Angola41  108661062.77e+03
AmericasArgentina74.3383311218.8e+03
OceaniaAustralia80.4195467923.07e+04