フォレストプロットの体裁が簡単にできるパッケージの紹介です。パッケージ利用のカギになるのはコマンドに適応したデータの作成でしょうか。紹介では2グループの信頼区間を表示するフォレストプロットを作成しています。実行コマンド内の「データ例の作成」を確認いただければコツを理解できると思います。
パッケージバージョンは0.1.2。実行コマンドはwindows 11のR version 4.1.2で確認しています。
パッケージのインストール
下記、コマンドを実行してください。
#パッケージのインストール
install.packages("forestploter")
実行コマンド
詳細はコメント、パッケージのヘルプを確認してください。
#必要パッケージの読み込み
library("forestploter")
###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
install.packages("tidyverse");require("tidyverse")
}
TestData <- tibble(SubGroup = c("ALL", "System", "PC", "MOBILE",
"SEX", "Male", "Female"),
General = c(400, "", 150, 250, "", 150, 250),
Engineer = c(450, "", 300, 150, "", 150, 300),
HR_1 = c(1.125, NA, 2.00, 0.6, NA, 1.00, 1.2),
HR_2 = c(0.825, NA, 1.50, 0.3, NA, 0.85, 1.2),
Lower_1 = c(0.951, NA, 1.235, 0.523, NA, 0.547, 0.658),
Lower_2 = c(0.651, NA, 1.435, 0.223, NA, 0.447, 1.158),
Upper_1 = c(1.183, NA, 2.235, 0.723, NA, 1.147, 1.358),
Upper_2 = c(0.853, NA, 1.735, 0.523, NA, 1.047, 1.358),
Se_1 = c(0.193, NA, 0.235, 0.023, NA, 0.147, 0.358),
Se_2 = c(0.083, NA, 0.135, 0.003, NA, 0.047, 0.258)) %>%
#グループ名以外は「インデント」を挿入する処理
mutate(SubGroup = ifelse("" == General, SubGroup,
paste0(" ", SubGroup))) %>%
#グラフを正しい位置に表示するための調整列
mutate(" " = paste(rep(" ", 20), collapse = " ")) %>%
#HR (95% CI)_1の情報
mutate("HR (95% CI)_1" = ifelse(is.na(HR_1), "",
paste0(HR_1, " (", Lower_1, " to ", Upper_1, ")"))) %>%
#HR (95% CI)_2の情報
mutate("HR (95% CI)_2" = ifelse(is.na(HR_2), "",
paste0(HR_2, " (", Lower_2, " to ", Upper_2, ")")))
########
#フォレストプロットのテーマ作成:forest_themeコマンド
#その他オプションはヘルプ参照
tm <- forest_theme(base_size = 10, #テキストサイズ
refline_lty = "solid", #リファレンスライン線種
refline_col = "red", #リファレンスライン色
ci_pch = c(15, 18), #点推定値シンボル種類
ci_col = c("#377eb8", "#4daf4a"), #信頼区間のひげ色
ci_lty = c(1, 2), #信頼区間のひげ線種
footnote_col = "blue", #フットノート色
legend_name = "Group", #凡例名
legend_value = c("KARADA_1", "KARADA_2"), #グループ名
vertline_lty = c("dashed", "dotted"), #垂直線種
vertline_col = c("#d6604d", "blue") #垂直線種
)
#フォレストプロットの作成:forestコマンド
#プロットデータが複数の場合はlist形式にする
ForestPlot <- forest(TestData[,c(1:3, 12:14)],
est = list(TestData$HR_1,
TestData$HR_2),
lower = list(TestData$Lower_1,
TestData$Lower_2),
upper = list(TestData$Upper_1,
TestData$Upper_2),
sizes = list(TestData$Se_1,
TestData$Se_2),
ci_column = 4, #プロットを挿入する列の位置
ref_line = 1, #リファレンスラインの基準
vert_line = c(0.7, 1.8), #垂直線の追加
arrow_lab = c("General Better",
"Engineer Better"),
footnote = "デモデータです",
theme = tm)
#プロット
plot(ForestPlot)
#フォレストプロット体裁の調整:edit_plotコマンド
###gridパッケージが必要です#####
#gridパッケージがなければインストール
if(!require("grid", quietly = TRUE)){
install.packages("grid");require("grid")
}
#文字を赤色,太字にする:edit_plotコマンド
ColChange <- edit_plot(ForestPlot,
row = 3, #行の選択
gp = gpar(col = "red",
fontface = "bold"))
plot(ColChange)
#背景を塗りつぶす:edit_plotコマンド
#whichオプション:"background"を指定
FillChange <- edit_plot(ForestPlot, row = c(1, 5), which = "background",
gp = gpar(fill = "darkolivegreen1"))
plot(FillChange)
#ヘッダーに文字を挿入:insert_textコマンド
#partオプション;"header"を指定
InsertHeader <- insert_text(ForestPlot,
text = "KARADA_GOOD",
col = 3:5, #挿入位置
part = "header",
gp = gpar(col = "red",
fontface = "bold"))
plot(InsertHeader)
#指定した行に文字を挿入:insert_textコマンド
#partオプション;"body"を指定
InsertBody <- insert_text(ForestPlot,
text = "KARADA_GOOD",
row = 6, #挿入列位置
just = "left", #文字の位置;"center","left","right"
gp = gpar(col = "red",
fontface = "bold"))
plot(InsertBody)
出力例
・フォレストプロットの作成:forestコマンド

・文字を赤色,太字にする:edit_plotコマンド

・背景を塗りつぶす:edit_plotコマンド

・ヘッダーに文字を挿入:insert_textコマンド

・partオプション;”body”を指定

少しでも、あなたの解析が楽になりますように!!