# Building Custom Tables

Sometimes you need to create a table that doesn’t fit neatly into any of the other categories of table shown the Tables page.

## Keep in Mind

• Graphs are sometimes a more effective way to convey information.

## Also Consider

• Check the Tables page to see if any of those approaches will work for your application.

# Implementations

## R

There are lots of ways to create custom tables, I am using RStudio’s gt because it is easy to use and gives me a lot of control over the table elements. It has many more options than I am demonstrating so be sure to look at their documentation.

# Install gt if necessary
# install.packages('gt')
library(gt)

# I'm also loading magrittr so I can use the %>% pipe
library(magrittr)

# you data will need to be in a data.frame or tibble object
# for this example I'll use the generic dataset mtcars
# which I'm truncating to make the final table easier to see
input_df = input_df[, 1:5]

# create the table including the data.frame rownames
Ex_table = gt(input_df, rownames_to_stub = TRUE)

# add title, subtitle, and source note
Ex_table = Ex_table %>%
title = md("**Title in Bold Text**"),
subtitle = "subtitle"
) %>%
tab_source_note("Data from mtcars")

Ex_table = Ex_table %>%
tab_row_group(
label = "4 Cylinder",
rows = cyl == 4
) %>%
tab_row_group(
label = "6 Cylinder",
rows = cyl == 6
) %>%
tab_row_group(
label = "8 Cylinder",
rows = cyl == 8
)



This produces:

Title in Bold Text
subtitle
mpg cyl disp hp drat
8 Cylinder
Hornet Sportabout 18.7 8 360 175 3.15
6 Cylinder
Mazda RX4 21.0 6 160 110 3.90
Mazda RX4 Wag 21.0 6 160 110 3.90
Hornet 4 Drive 21.4 6 258 110 3.08
Valiant 18.1 6 225 105 2.76
4 Cylinder
Datsun 710 22.8 4 108 93 3.85
Data from mtcars

Citation for gt:
Iannone R, Cheng J, Schloerke B (2022). gt: Easily Create Presentation-Ready Display Tables. https://gt.rstudio.com/, https://github.com/rstudio/gt.