R語言中cut()函數的用法說明
R語言cut()函數使用
cut()
切割將x的范圍劃分為時間間隔,並根據其所處的時間間隔對x中的值進行編碼。
參數:breaks:兩個或更多個唯一切割點或單個數字(大於或等於2)的數字向量,給出x被切割的間隔的個數。
breaks
采用fivenum():返回五個數據:最小值、下四分位數、中位數、上四分位數、最大值。
labels
為區間數,打標簽
ordered_result 邏輯
結果應該是一個有序的因素嗎?
先用fivenum求出5個數,再用labels為每兩個數之間,貼標簽,采用(]的區間, 再將各個數,對應區間,求出即可
>j1<-c(23,62,72,80,59,82,90,43,94) break1<-fivenum(j1) > break1 [1] 23 59 72 82 94 > labels = c("差", "中", "良", "優") > j2<-cut(j1,break1,labels,ordered_result = T) > j2 [1] <NA> 中 中 良 差 良 優 差 優 Levels: 差 < 中 < 良 < 優
補充:R語言中使用CUT函數將數據進行分段重編碼
在很多SCI論文中,都會把連續變量進行分段比較,如年齡分為青年、中年、老年,或者把某一指標連續高,中,低分為幾等分再進行性分析,如下圖所示,把連續的孕周通過認為的分為早孕、中孕和晚孕
在R語言中,實現這種方法,我們需要把連續變量進行分段(也叫分箱)然後進行重編碼對數據進行分析,這一步很重要,這是為後面的分析做準備。今天我們通過使用R語言自帶的CUT函數來演示對數據的分段重編碼及數據整理。
我們今天使用SPSS軟件自帶的Breast cancer surviva的數據資料為演示,先打開Rstudiu把數據導入,並且刪除缺失值
library(foreign)#導入foreign包 bc <- read.spss(“E:/r/Breast cancer survival agec.sav”, use.value.labels=F, to.data.frame=T) bc <- na.omit(bc)
查看一下該數據
head(bc)
第二個指標是年齡,我們打算把年齡平局分為高中低三個區間
age1<-cut(bc$age,breaks = 3,labels = c(1,2,3))#平均分為3個區間,命名為1,2,3
dc<-cbind(bc,age1)#把變量加入表格
這樣就把年齡進行瞭分組重編碼。我們還可以對具體年齡段進行分組
age2<-cut(bc$age,breaks=c(0,20,60,100),include.lowest=T, labels = c(1,2,3))#把age劃分為0-20,20-60,60到100這樣3個區間 dd<-cbind(bc,age2)#把變量加入表格
也可以按百分位比把年齡進行分段
age3<-quantile(bc$age,c(0,.25,.50,.75,1)) dc<-cbind(bc,age3)#把變量加入表格
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- None Found