library(gt) を利用して 取り急ぎ テーブルを出力するコードです。
以下の条件のテーブルを出力します。
- 行番号 を表示。
- タイトルは 太字イタリック、サブタイトルは 太字、キャプションは イタリック。
- 2列目の数値には 符号 を添付し、小数点4位まで表示。
- NA は — に置換。
- 1-3列目は 右寄せ、4-6列目は 左寄せ。
- 2列目と3列目、4列目と5列目はそれぞれ グループ化。
- タイトルとサブタイトルそして2列目にはそれぞれの 脚注(フットノート) を表示。
- 列名は全て 太字 かつ 左寄せ。
- テーブルの ストライプ は不要(bootstrap のスタイルシートは利用しない)。
- 2列目のみ 幅 を設定(250px)
- table 全体の フォントサイズ は20pxに設定。
始めにパッケージのバージョンを確認します。
library(gt)
packageVersion("gt")
[1] '0.10.1'
続いてサンプルとするデータフレームを作成します。
<- "***library(gt)のサンプル***"
txt.title <- "**iris**"
txt.subtitle <- Sys.Date() %>% paste0("*", ., "*")
txt.caption <- "https://gt.rstudio.com/"
txt.footnote1 <- "iris {datasets}"
txt.footnote2 <- "with sign"
txt.footnote3 <- TRUE
rownames_to_stub data("iris")
5, 1] <- iris[2, 5] <- NA
iris[2, 1] <- iris[2, 1] * -1
iris[3, 1] <- iris[3, 1] * -1
iris[<- iris %>% head()
sample.df sample.df
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 -4.9 3.0 1.4 0.2 <NA>
3 -4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 NA 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
それでは上記11の条件を満たしたテーブルを表示します。
<- gt(data = sample.df, rownames_to_stub = TRUE) %>%
g tab_header(title = md(txt.title), subtitle = md(txt.subtitle)) %>%
tab_caption(caption = md(txt.caption)) %>%
fmt_number(columns = c(2), decimals = 4, force_sign = TRUE) %>%
sub_missing(columns = everything(), rows = everything(), missing_text = "---") %>%
cols_align(align = "right", columns = c(1:3)) %>%
cols_align(align = "left", columns = c(4:6)) %>%
tab_spanner(label = "Sepal", columns = c(2:3)) %>%
tab_spanner(label = "Petal", columns = c(4:5)) %>%
tab_footnote(footnote = txt.footnote1, locations = cells_title(groups = "title")) %>%
tab_footnote(footnote = txt.footnote2, locations = cells_title(groups = "subtitle")) %>%
tab_footnote(footnote = txt.footnote3, locations = cells_column_labels(columns = c(2))) %>%
tab_options(column_labels.font.weight = "bold", quarto.disable_processing = TRUE, quarto.use_bootstrap = FALSE, table.font.size = 20) %>%
tab_style(style = cell_text(align = "left"), locations = cells_column_labels(columns = everything())) %>%
cols_width(colnames(iris)[1] ~ px(250))
g
library(gt)のサンプル1 | |||||
iris2 | |||||
Sepal | Petal | Species | |||
---|---|---|---|---|---|
Sepal.Length3 | Sepal.Width | Petal.Length | Petal.Width | ||
1 | +5.1000 | 3.5 | 1.4 | 0.2 | setosa |
2 | −4.9000 | 3.0 | 1.4 | 0.2 | — |
3 | −4.7000 | 3.2 | 1.3 | 0.2 | setosa |
4 | +4.6000 | 3.1 | 1.5 | 0.2 | setosa |
5 | — | 3.6 | 1.4 | 0.2 | setosa |
6 | +5.4000 | 3.9 | 1.7 | 0.4 | setosa |
1 https://gt.rstudio.com/ | |||||
2 iris {datasets} | |||||
3 with sign |
gtsave {gt} を利用して作成したテーブルを画像として保存できます。
setwd("D:/gt-output/")
::gtsave(data = g, "gt-sanple.png")
gtdir()
[1] "gt-sanple.png"
以上です。