臨床試験の論文にはサブグループ解析がついていることが多いです。これをRで行う方法が今までわかりませんでした。やりたいことは、特定のサブグループを取り出して、治療有り無しでハザード比を使ったフォレストプロットを書くことですが、今までパッケージを見つけられませんでした。メタアナリシスは、”rmeta”などいくつかパッケージがあります。数値を手入力して根性で書くところまでは到達しますが、簡便とはとても言えません。昔学会でうまく書いている人に聞いてみたところ、SASで書いているとの返事でした。SASは恐ろしく高いソフトで、しがない市中病院勤務医には手も出ません…。
しかしついにパッケージを見つけましたので、備忘録も兼ねてご紹介したいと思います。パッケージは‘SubgrPlots’です。表示項目が多く、また細かい指定が多いので複雑に見えますが、よく見れば書くのに難しいことは必要ありません。
ソースコードは末尾に示します。
prcaはパッケージに入っている前立腺癌の見本データセットです。
rxは治療有り無し、bmは骨転移、stageはそのままです。
covari.sel :サブグループとなる因子を指定する(データセットの何番目という指定)
trt.sel :治療有無を示す因子を指定する(上に同じ)
resp.sel :治療効果を示す因子を指定(ハザードならtime, status)(上に同じ)
outcome.type :治療効果の型を指定する文字列,これは “continuous”,または
“binary “または “survival “のどれかで指定.size.shape : サンプルサイズを表示するダイアモンドの高さと幅を指定する。
font.size : ラベルとテキストのサイズを指定する。
・1番目はメインのタイトル用,・2番目はX軸ラベル用、
・3番目は最初のサブ図のテキスト用,・4番目はX軸ラベル用
title : 3つのサブ図のメインタイトルを指定。
lab.x: 3つのサブ図のx軸ラベルを指定。
time : RMSTを計算する時間
KM: 3枚目のパネルにKaplan-Meier曲線を表示するかどうかを指示
show.km.axis: Kaplan-Meier曲線に軸を表示するかどうかを指示
widths: 3つのパネルの幅を指示
max.time: Kaplan-Meier曲線におけるx軸の最大表示時間を指示
NULLの場合は,データセットからの最大値.
n.brk: Kaplan-Meier 曲線の時間の表示をいくつにするか指示。trt.labels: 治療有無の表示を指定する(長さ2)。
panel.title: 最初のパネルの列タイトルを指定する(長さ3)
eff.scale: “logHR “または “HR “のいずれか。outcome.type = “survival “の場合のみ必要。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
library(SubgrPlots) dat = prca main.title = list("", "","") label.x = list("","","") plot_forest(dat, covari.sel = c(4,6), trt.sel = 3, resp.sel = c(1, 2), outcome.type = "survival", eff.scale = "HR", size.shape = c(0.2, 7), font.size = c(1, 1, 1, 0.75), title = main.title, lab.x = label.x, time = 50, KM = T, trt.labels = c("rx+", "rx-"), show.km.axis = 2, n.brk = 5, max.time = 80, panel.titles = c("Hazard Ratio", "95% CI", "N(rx+;rx-)"), widths = c(1,0.8,0.5) ) |