通常醫學科研論文的第一張表格匯總的是研究對象基線資料,也稱為Table1,我們之前寫過一篇文章介紹快速生成table1,請參考《論文中臨床資料整理太麻煩,其實完成table1隻需不到10分鐘》。但tableone命令也存在一定的缺陷,如不能提供組間比較的統計量,又如符合正態分布的變量,會以均數(標準差)形式表示,這些對SCI文章來說,是比較正常的。我們來看一下國際上心血管領域的頂級期刊Stroke一篇文章的表格。
但國內雜誌需要我們提供組間比較的統計量,而且符合正態分布的變量,通常是以均數±標準差的形式表示,我們來看一下國內權威雜誌《中華流行病學》上一篇文章的表格。如果想投稿國內的雜誌,tableone命令生成的表格就不夠用了,還需要我們手動,一個變量一個變量的進行假設檢驗,並把相應的統計量填入表格,而且還需要改成均數±標準的形式,也需要花費不少時間。
之前本公眾號也專門針對CBCgrps包進行過介紹,請參考《對中文期刊友好的,臨床基線資料table快速生成,不學就OUT了》。前段時間,我自己寫文章也用到了這個包,確實很好用,但覺得之前的介紹文章還需要完善一下,讓我們參考使用起來更為順暢和方便,特地對代碼進行了部分的修改。
1、 導入並查看數據集。
2、 變量因子化
3、安裝並調用CBCgrps包。
install.packages('CBCgrps')library(CBCgrps)library(nortest)4、使用CBCgrps包進行兩組間比較
CBCgrps參數設定介紹# norm.rd=1,sk.rd=1,cat.rd=1,統計描述結果都保留一位小數# ShowStatistic = T 顯示統計量# gvar = "disease" 制定分組變量為diseasetable1 <-twogrps(mydata, gvar = "disease", norm.rd=1,sk.rd=1,cat.rd=1,ShowStatistic = T)print(table1)write.csv(table1,file="table1.csv") #結果保存到工作文件夾5、使用CBCgrps包進行三組間比較
CBCgrps參數設定介紹# norm.rd=1,sk.rd=1,cat.rd=1,統計描述結果都保留一位小數# ShowStatistic = T 顯示統計量# gvar = "bmig" 制定分組變量為bmigtable2 <-multigrps(mydata, gvar = "bmig", norm.rd=1,sk.rd=1,cat.rd=1,ShowStatistic = T)print(table2)write.csv(table2,file="table2.csv") #結果保存到工作文件夾6、獲取CBCgrps包更多細節,可以閱讀章老師的兩篇文章,在本公眾號後臺回覆:CBC文獻,獲取這兩篇文獻。
Zhang Z. Univariate description and bivariate statistical inference: the first step delving into data.Ann Transl Med. 2016 Mar;4(5):91.
Zhang Z, Gayle AA, Wang J, Zhang H, Cardinal-Fernasndez P. Comparing baseline characteristics between groups: an introduction to the CBCgrps package. Ann Transl Med. 2017 Dec;5(24):484. doi: 10.21037/atm.2017.09.39.
寫在後面
兩組間比較的表格可以直接放在論文裡,可以不用再額外設置參數,CBCgrps可以自動完成正態性檢驗,並根據數據是否符合正態,來完成不同的統計描述和假設檢驗,如age符合正態性,所以表示成Mean±SD,假設檢驗用的是t檢驗;而testa不符合正態,所以表示成Median(IQR),假設檢驗用的是Mann-Whitney U檢驗。
對於三組間整體有統計學差異的變量,還需要我們自己完成兩兩比較的檢驗,這對於R來說還是比較方便的,可以參考本公眾號的相關文章《卡方檢驗和精確概率法及兩兩比較》、《手把手教你多組獨立樣本的非參數檢驗及兩兩比較》。
是不是很想用R試一試?Table1的快速生成確實是很有必要掌握的內容,另外還有很多實用的R技能,非常好用。如果你想學R語言但怕耗時耗力?可以加入我們,輕鬆學會許多R技能,學了就能用,詳情請諮詢劉老師(微信:tbwhere2)。