轉(zhuǎn)自醫(yī)學(xué)方
2019-07-4 Alexander
流行病學(xué)或者醫(yī)學(xué)論文中召庞,對研究對象基本情況的描述通常以表格的形式進(jìn)行,并且放在結(jié)果部分的開頭来破,即Table 1篮灼,主要內(nèi)容是研究對象一般情況和研究變量或協(xié)變量的分組展示。
前幾天文章修回過程中徘禁,花了兩天時間分析數(shù)據(jù)诅诱,修改文章,其中有近1天的時間都在手動錄入數(shù)據(jù)(從R studio里把分析結(jié)果整理到Excel或者word)晌坤,這樣除了花費時間外逢艘,還非常容易出錯。之前一直想找時間通過R markdown把制作表格的過程程序化骤菠,可是效果并不理想。
這次痛定思痛疤孕,先從table 1開始商乎,發(fā)現(xiàn)了幾個不錯的方法。其中一種個人覺得可讀性和可編輯性都比較強(qiáng)祭阀,于是學(xué)習(xí)了一下鹉戚,作為一個非常實用的工具分享給大家。
這里主要參考一篇博客Fast-track publishing using knitr: table mania专控,對細(xì)節(jié)進(jìn)行了加工和注釋抹凳。
1數(shù)據(jù)的準(zhǔn)備
數(shù)據(jù)主要來自于boot包的melanoma。加載后伦腐,看下數(shù)據(jù)的基本結(jié)構(gòu)赢底。
接下來對數(shù)據(jù)進(jìn)行簡單的整理,為后續(xù)分析做準(zhǔn)備柏蘑;
將分類變量定義為因子型并設(shè)置標(biāo)簽(這里建議設(shè)置一個新的變量幸冻,僅用于table 1的制作,不影響后續(xù)的分析)咳焚;
2安裝和加載R包 Gmisc
后面兩個包是加載“Gmisc”時要求加載的洽损。
3自定義函數(shù)、制作表格
根據(jù)已有函數(shù)自定義函數(shù)革半,并制作表格碑定。定義一個函數(shù)流码,輸入數(shù)據(jù)集的變量并得到該變量的統(tǒng)計結(jié)果:
函數(shù)定義完成后,建立一個空的列表延刘,以儲存每個變量的分析結(jié)果漫试,并進(jìn)行分析,將結(jié)果儲存在列表中:
將所有結(jié)果merge到一個矩陣中访娶,并建立rgroup(table1第一列的變量名) 和 n.rgroup(table 1第一列每個變量的行數(shù)):
然后就一鍵生成html表格啦
結(jié)果如下:
當(dāng)然商虐,有些情況下,需要多加一個分組標(biāo)題欄(column spanner)崖疤,該怎么加呢秘车?
如下:
結(jié)果如下:
4導(dǎo)出結(jié)果
在R studio viewer窗口點擊白色按鈕,即可在瀏覽器中打開劫哼,然后復(fù)制粘貼到word可以進(jìn)一步加工修飾叮趴。
是不是很刺激呢。
應(yīng)該還有其他的導(dǎo)出方法权烧,不過這個已經(jīng)很方便了眯亦。
拓展功能選
⒈ 二分類變量只顯示一個(比如男性和女性)。只要在getDescriptionStatsBy的"show_all_values"參數(shù)設(shè)置為FALSE即可般码;
⒉ 顯示缺失值妻率。getDescriptionStatsBy的"useNA"參數(shù)設(shè)置為"ifany",表示如果有缺失值就顯示缺失值情況板祝;如設(shè)置為“no”宫静,表示始終不顯示缺失值情況;“always”則表示無論是否有缺失值都顯示缺失值情況券时;
⒊ Total一列是可以去掉的孤里,getDescriptionStatsBy的"add_total_col"參數(shù)設(shè)置為FALSE即可。
不足之處
⒈ 差異性檢驗是采用非參的方法橘洞,雖然沒有錯捌袜,但是一般符合參數(shù)檢驗條件的數(shù)據(jù)還是要使用參數(shù)檢驗的方法,這里可以自行檢驗后再修改P-value炸枣;
⒉ Mean (SD)的展示形式有個括號感覺有點別扭虏等,還不知道怎么去掉,有方法的小伙伴歡迎分享交流抛虏。
另外有一些其他的制作table 1的R包博其,比如table 1(R包的名字)包,tableone包迂猴,還有其他生成表格的R包(plyr等)慕淡,個人瀏覽下來感覺這個最容易理解和掌握,其他包的功能有興趣的可以再自行挖掘?qū)Ρ取?/p>