Yoshi Nishikawa's Blog

データと知識、その調和平均。

tableone パッケージでtable1をつくる

臨床研究のtable1は

臨床系の研究で、図表を見ると、まず高確率で遭遇するtable1

http://medical.nikkeibp.co.jp/all/special/ebm/topics/200908/images/thumb_511983_0812-11.jpg

八割がたこういう患者背景だ。
(リンク先が「図」表記になっているッ・・・!)
これをいとも簡単に作成できるR packageがある。その名も・・・

tableone

table1 = 表1だ。 早速つかってみる。UCIのopen data “fertility"を用いる。

library(tableone)
res<-read.csv("http://archive.ics.uci.edu/ml/machine-learning-databases/00244/fertility_Diagnosis.txt", na.strings = "NA", as.is=T, header = F)
colnames(res) <- c("season", "age", "childish_diseases", "trauma", "surgery", "fever", "alcohol", "smoking", "sitting", "diagnosis")

#Create a variable list which we want in Table 1
listVars <- colnames(res)[-c(1)]

#Define categorical variables
catVars <- listVars[-which(listVars %in% c("age"))]

#Total Population
table1 <- CreateTableOne(vars = listVars, data = res, factorVars = catVars, strata = "diagnosis")
table1
summary(table1)

Table 1 (diagnosisでグループ分けしたもの)

f:id:yoshi_nishikawa:20170513155621p:plain

continuous variablesのサマリー

f:id:yoshi_nishikawa:20170513155631p:plain

categorical variablesのサマリー

f:id:yoshi_nishikawa:20170513155638p:plain

p値

f:id:yoshi_nishikawa:20170513155642p:plain