1. 程式人生 > 實用技巧 >R語言中使用subset函式對資料進行分類管理操作

R語言中使用subset函式對資料進行分類管理操作

我們在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分別代表一組是由淋巴結腫大的,一組是沒有淋巴結腫大的。說了一大堆,其實程式碼就是幾行,非常簡單。
動動小手關注一下吧,更多精彩文章盡在零基礎說科研
在這裡插入圖片描述