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。如有錯誤或未考慮完全的地方,望不吝賜教。