スポンサーリンク
Rでtableの標準偏差を±に表示にする
統計の世界では賛否あるようですが、医学論文では標準偏差を±で表現することがあります。
Rのtableoneではmean (SD)で表示されるため書き換える必要があります。
これを当初の私はcsvに出力してから手作業しておりましたが、手間で仕方がありませんでした。
以下のコードで解決しました。
使用する練習データはこちら
tableoneでの2群比較についてはこちら
library(tableone)
baseline <- c("BMI", "HbA1c", "HT", "DM")
baseline_factor <- c("HT", "DM")
table1 <- CreateTableOne(vars = baseline,
strata = "Male",
data =df,
factorVars = baseline_factor)
table1
tab1 <- print(table1)
tab1 <- gsub(" ", "", tab1) #スペースを消す
tab1 <- gsub("\\(", " \\(", tab1) #±に変更する部分にのみスペースを空ける
mean_sd <- c("BMI (mean (SD))", "HbA1c (mean (SD))")
tab1[mean_sd,] <- gsub("\\(", "\\± ", tab1[mean_sd,])
tab1[mean_sd,] <- gsub("\\)", "", tab1[mean_sd,])
table1
上記のコードを下半分を解説します。
ここではBMIとHbA1cについて標準偏差を±で表示したいとします。
tableoneで作成した表には余計なスペースがあるので消します。
tab1 <- gsub(" ", "", tab1) #スペースを消す
±に変更する部分にのみスペースを空けます。
tab1 <- gsub("\\(", " \\(", tab1) #±に変更する部分にのみスペースを空ける
±に変更したい項目をmean_sdに代入します。
mean_sd <- c("BMI (mean (SD))", "HbA1c (mean (SD))")
“(” を “±” に変えます。
tab1[mean_sd,] <- gsub("\\(", "\\± ", tab1[mean_sd,])
“)” を消します。
tab1[mean_sd,] <- gsub("\\)", "", tab1[mean_sd,])
これで完成です。
これをcsvで出力すれば手作業不要です。