生物醫學或其他研究論文中的“表一”多為基線特征的描述性統計。使用R單獨進行統計,匯總,然后結果復制到excel表中,耗時耗力且易錯!
tableone包“應運而生”,可以非常簡單快捷的解決這個問題,重點是學習成本很低,大概幾分鍾?
一 載入數據,R包
## install.packages("tableone")
library(tableone)
library(survival)
data(pbc)
head(pbc)

二 單組匯總
1 匯總整個數據集
對pbc整個數據集進行描述匯總,使用CreateTableOne()即可
tab1 <- CreateTableOne(data = pbc)
print(tab1)

由於數據中的分類變量是數值形式,所以分類變量展示的也是均值(標准差)。
2 設置變量類型
dput(names(pbc)) # 輸出據集變量名稱
## 需要匯總的變量
myVars <- c("time", "status", "trt", "age", "sex", "ascites", "edema", "bili", "copper", "ast", "stage")
## 需要轉為分類變量的變量
catVars <- c("status", "trt", "ascites", "stage")
## Create a TableOne object
tab2 <- CreateTableOne(vars = myVars, data = pbc, factorVars = catVars)
print(tab2, showAllLevels = TRUE)

showAllLevels = TRUE 會展示分類變量的所有分類因子的結果。
此處隨意選擇一些變量進行功能展示, 分類變量顯示計數和百分比 。
3 非正態分布變量
由於默認連續變量呈正態分布,因此上面的連續變量均表示為均數+標准差。
實際數據中的非正態分布數據,可通過nonnormal指定,則此變量展示為中位數(四分位數)。
#假設"bili","ast","copper"非正態分布
biomarkers <- c("bili","copper","ast")
print(tab2, nonnormal = biomarkers)

可見"bili","ast","copper"均用中位數(四分位數)表示;如果設置nonnormal = TRUE,則所有變量都按非正態分布處理。
三 多組匯總
1 分組統計
實際結果中,通常需要對數據集按照某個變量的分組進行匯總。下面展示使用trt進行分組匯總:
tab3 <- CreateTableOne(vars = myVars, strata = "trt" , data = pbc, factorVars = catVars)
tab3

注意NA不作為分組
結果可看出,對trt進行分組且對每一組均進行了匯總,且統計輸出了檢驗的P值。
檢驗方法:分類變量默認使用卡方檢驗(chisq.test());連續變量默認使用方差分析(oneway.test()),當兩組時方差分析等用於t檢驗。
2 定義檢驗方式
非正態性的數據展示方式為中位數(四分位數),檢驗方式也最好不使用T檢驗:
非正態分布的連續變量使用kruskal.test()檢驗,兩組間比較時,kruskal.test()和wilcox.test()等效;
分類變量可使用fisher.test()進行fisher精確檢驗,通過exact()指定進行fisher精確檢驗的變量。
#addOverall 添加Overall信息
tab4 <- CreateTableOne(vars = myVars, strata = "trt" , data = pbc, factorVars = catVars,
addOverall = TRUE )
#exact設置fisher精確檢驗的變量
print(tab4, nonnormal = biomarkers, exact = "stage")

四 導出結果
write.csv一鍵導出結果
tab4Mat <- print(tab4, nonnormal = biomarkers, exact = "stage", quote = FALSE, noSpaces = TRUE, printToggle = FALSE, showAllLevels = TRUE)
## 保存為 CSV 格式文件
write.csv(tab4Mat, file = "myTable.csv")

隨便套用了一個表格格式,可以在excel中弄成喜(文)歡(章)的樣式,這個自己發
參考資料:
https://cran.r-project.org/web/packages/tableone/vignettes/introduction.html
◆ ◆ ◆ ◆ ◆
精心整理(含圖版)|R語言生信分析,可視化,你要的全拿走,建議收藏!

