脱stargazer – Rによる記述統計の作り方

Rのパッケージであるstargazerは、2018年から開発がストップしており、cranから消える日もそう遠くはない。

多くの方が、代替パッケージを探していると思うが、回帰分析のテーブルを出力するパッケージについての記事は多くあるのにも関わらず、記述統計を出力するパッケージについての記事がほとんどないので、本稿を書くことにした。

vtableパッケージ

個人的にもっともstargazerに近い操作性なのは、vtableパッケージだ。

細かい関数や引数についてはリンク先を見て欲しいが、今回は簡単にstargazerと同じ表を出力するコードの例を示す。

この他にも、LaTeXの調整の引数や、ファクター型の変数に応じたGroup統計量を表示可能である。

library(tidyverse)
library(kableExtra)
library(vtable)


data %>% # 対象のデータ
sumtable(
 .,

  # 表示する統計量の指定
 summ = c(
  'notNA(x)','mean(x)',
  'sd(x)','min(x)','max(x)'
 ),

 # 統計量の表示名の指定
 summ.names = c(
  'N','Mean','Std. Dev.','Min','Max'
 ),

 # タイトル
 title = "Descriptive Statistics",

  # 出力ファイル指定
 # "latex"や"latexdoc"でLaTeX出力もできる
  # "htmlreturn"でhtml形式の出力
  # "return"でデータフレーム形式の出力
  # "browser"でウェブブラウザで確認可能
  # "viewer"でRstudio上のViewer欄で確認可能
 out = "return"
 ) 

vtable+kable(kableExtra)

vtableだけでは、LaTeXの細かな調整に満足いかないことも多い。

このような場合はout = "return"でデータフレームで出力した後に、kable(kableExtra)で調整すればよい。

kable(kableExtra)については日本語記事が多いので解説しない。

library(tidyverse)
library(kableExtra)
library(vtable)

data %>% 
sumtable(
 .,
 summ = c(
  'notNA(x)','mean(x)',
  'sd(x)','min(x)','max(x)'
 ),
 summ.names = c(
  'N','Mean','Std. Dev.','Min','Max'
 ),
 title = "Descriptive Statistics",
 out = "return"
 ) %>% 
# vtableから出力されたデータフレームをkableに渡す。
kable(
 .,
 linesep = "",
 booktabs = T,
 format = "latex",
 digits=2, 
 align = "c",
 caption ="Group by Year",
 label = "Group by Year"
) %>% 
kable_styling(
 latex_options = c("hold_position"),
 font_size = 9,
 full_width = F
) 

 

タイトルとURLをコピーしました