我們在SCI論文中常常可以見到這樣的表格,是根據分類來做出統計結果的,如下圖,是根據患者是否存活把患者分成了兩類倖存的和死亡的做分別統計,然後得出各類統計結果
那麼,R語言是怎麼做出這樣的表格呢?首先我們要把數據進行分割,得到一個倖存的數據表和一個死亡的數據表,然後再分別統計,我們今天利用R語言自帶的subset函數來演示這一功能,這是一個非常重要的功能,為今後我們對數據進一步分析做準備。
我們使用SPSS自帶的一個Breast cancer survival腫瘤數據來演示,首先我們把這個數據導入R,並且刪除缺失值
library(foreign)
library(survival)
bc <-read.spss("E:/r/Breast cancer survival agec.sav",
use.value.labels=F,to.data.frame=T)
bc <-na.omit(bc)
查看一下bc這個數據集的結構
head(bc)
age表示年齡,pathsize表示病理腫瘤大小(釐米),lnpos表示腋窩淋巴結陽性,histgrad表示病理組織學等級,er表示雌激素受體狀態,pr表示孕激素受體狀態,status結局事件是否死亡,pathscat表示病理腫瘤大小類別(分組變量),ln_yesno表示是否有淋巴結腫大,time是生存時間,後面的agec是我們自己設定的,不用管它。
在英文中subset就是亞組和子集的意思,R語言中subset函數就是用來構造子集的,我們使用這個功能來對數據進行分組。Subset函數使用最少要指定兩個指標,一個是數據集,一個是變量。ln_yesno只有兩個變量0和1,0表示沒有淋巴結腫大,1表示有淋巴結腫大,我們現在使用ln_yesno這個指標把患者分成兩組,一組是由淋巴結腫大的,一組是沒有淋巴結腫大的。
ln_yesno0<-subset(bc,bc$ln_yesno<1)#我們告訴subset 函數在ln_yesno這個變量中取小於1的指標,也就是0
同理輸入
ln_yesno1<-subset(bc,bc$ln_yesno>=1)
這樣就得到了兩個數據框ln_yesno0和ln_yesno1分別代表一組是由淋巴結腫大的,一組是沒有淋巴結腫大的。說了一大堆,其實代碼就是幾行,非常簡單。
動動小手關注一下吧,更多精彩文章盡在零基礎說科研