library(gt)を利用して取り急ぎテーブルを出力するコード

library(gt) を利用して 取り急ぎ テーブルを出力するコードです。

以下の条件のテーブルを出力します。

  1. 行番号 を表示。
  2. タイトルは 太字イタリック、サブタイトルは 太字、キャプションは イタリック
  3. 2列目の数値には 符号 を添付し、小数点4位まで表示。
  4. NA に置換。
  5. 1-3列目は 右寄せ、4-6列目は 左寄せ
  6. 2列目と3列目、4列目と5列目はそれぞれ グループ化
  7. タイトルとサブタイトルそして2列目にはそれぞれの 脚注(フットノート) を表示。
  8. 列名は全て 太字 かつ 左寄せ
  9. テーブルの ストライプ は不要(bootstrap のスタイルシートは利用しない)。
  10. 2列目のみ を設定(250px)
  11. table 全体の フォントサイズ は20pxに設定。

始めにパッケージのバージョンを確認します。

library(gt)
packageVersion("gt")
[1] '0.10.1'

続いてサンプルとするデータフレームを作成します。

txt.title <- "***library(gt)のサンプル***"
txt.subtitle <- "**iris**"
txt.caption <- Sys.Date() %>% paste0("*", ., "*")
txt.footnote1 <- "https://gt.rstudio.com/"
txt.footnote2 <- "iris {datasets}"
txt.footnote3 <- "with sign"
rownames_to_stub <- TRUE
data("iris")
iris[5, 1] <- iris[2, 5] <- NA
iris[2, 1] <- iris[2, 1] * -1
iris[3, 1] <- iris[3, 1] * -1
sample.df <- iris %>% head()
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の条件を満たしたテーブルを表示します。

g <- gt(data = sample.df, rownames_to_stub = TRUE) %>%
  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
2024-08-09
library(gt)のサンプル1
iris2
Sepal PetalSpecies
Sepal.Length3Sepal.WidthPetal.LengthPetal.Width
1+5.10003.51.40.2setosa
2−4.90003.01.40.2
3−4.70003.21.30.2setosa
4+4.60003.11.50.2setosa
53.61.40.2setosa
6+5.40003.91.70.4setosa
1 https://gt.rstudio.com/
2 iris {datasets}
3 with sign

gtsave {gt} を利用して作成したテーブルを画像として保存できます。

setwd("D:/gt-output/")
gt::gtsave(data = g, "gt-sanple.png")
dir()
[1] "gt-sanple.png"

以上です。