前回の投稿に引き続き、gtsummaryパッケージで作成した回帰分析の表を行方向に結合する関数(tbl_stack)について書き残しておきます。
1. 前準備
今回も、palmerpenguinsパッケージにあるpenguinsというデータセットを使用します。
allisonhorst.github.io
install.packages("palmerpenguins") #パッケージのインストール library(palmerpenguins); library(tidyverse); library(gtsummary) #必要なパッケージの読み込み data(penguins) #データの呼び出し
2. 異なるグループ(AdelieおよびGentoo)でのモデルの実施 + tbl_regressionによる書き出し
ここでは、2つの異なる集団に絞って回帰モデルの実施をします。
Model AではAdelieでの回帰分析を実施したものをresAdelieに格納します。同様に、Model BではGentooでの回帰分析を実施したものをresGentooに格納します。
#Model for Adelie resAdelie <- penguins %>% filter(species == "Adelie") %>% glm(bill_length_mm ~ flipper_length_mm, data = .) %>% tbl_regression(estimate_fun = ~style_sigfig(., digits = 3)) %>% bold_p(t = 0.05) #Model for Gentoo resGentoo <- penguins %>% filter(species == "Gentoo") %>% glm(bill_length_mm ~ flipper_length_mm, data = .) %>% tbl_regression(estimate_fun = ~style_sigfig(., digits = 3)) %>% bold_p(t = 0.05)
それぞれ個別に出力すると、次のようになります。
Model for Adelie(resAdelie)の出力
Model for Gentoo(resGentoo)の出力
論文でよく見るような(男女や年齢層で層別化した)表を出力したいなと思うこともしばしばあると思います。それを実現するのが、tbl_stackになります。
3. 異なるモデルのマージ(結合)
2. で作成したtbl_regressionのresAdelieおよびresGentooについて、tbl_stackを使用して結合したものを出力します。
tbl_stack_res <- tbl_stack(tbls = list(resAdelie, resGentoo), group_header = c("Adelie", "Gentoo")) tbl_stack_res
tbl_stackを使用した出力が次のようになります。
異なる集団(層別化解析)について共通のモデルを実施する場合には有用です。非常にシンプルですが、tbl_mergeと同じく結果をまとめる時にはパワフルな関数だと思います。
4. 参考ページ
1. gtsummary
http://www.danieldsjoberg.com/gtsummary/
2. Tutorial: tbl_regression
http://www.danieldsjoberg.com/gtsummary/articles/tbl_regression.html
3. tbl_stack
https://www.danieldsjoberg.com/gtsummary/reference/tbl_stack.html
20210720
RF