【R】gt
2020年11月4日
1. はじめに
表データを見やすくきれいに表示できるパッケージがgtです。コンセプトは、”Grammar of tables”で”Grammar of Graphics”のggplotと同じく、記述することで表の体裁を整えることができます。
2. インストール
CRANからインストールできます。
install.packages("gt")
3. 使ってみる。
まずは、例にあるものをそのまま試してみます。
library(gt)
library(tidyverse)
library(glue)
# Define the start and end dates for the data range
start_date <- "2010-06-07"
end_date <- "2010-06-14"
# Create a gt table based on preprocessed
# `sp500` table data
sp500 %>%
dplyr::filter(date >= start_date & date <= end_date) %>%
dplyr::select(-adj_close) %>%
gt() %>%
tab_header(
title = "S&P 500",
subtitle = glue::glue("{start_date} to {end_date}")
) %>%
fmt_date(
columns = vars(date),
date_style = 3
) %>%
fmt_currency(
columns = vars(open, high, low, close),
currency = "USD"
) %>%
fmt_number(
columns = vars(volume),
suffixing = TRUE
)

おお、きれい!
別の表も作ってみます。gtで表の保存もできます。
data("diamonds")
diamonds_tbl <- diamonds %>%
select(-x, -y, -z) %>%
group_by(cut) %>%
summarise(mean=mean(price)) %>%
gt() %>%
tab_header(
title = "Diamond price"
) %>%
fmt_currency(
columns = vars(mean),
currency = "USD"
)
diamonds_tbl
gtsave(diamonds_tbl, "table.png")

html形式でも出力できます。
gtsave(diamonds_tbl, "table.html")
| Diamond price | |
|---|---|
| cut | mean |
| Fair | $4,358.76 |
| Good | $3,928.86 |
| Very Good | $3,981.76 |
| Premium | $4,584.26 |
| Ideal | $3,457.54 |
4. さいごに
今まで、表はExcelで作ってましたが、これならRで直接きれいに出力できるので、便利ですね!