R语言中cut()函数的用法说明

时间:2022-06-01 22:09:36

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语言中cut()函数的用法说明

在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)

R语言中cut()函数的用法说明

查看一下该数据

head(bc)

R语言中cut()函数的用法说明

第二个指标是年龄,我们打算把年龄平局分为高中低三个区间

age1<-cut(bc$age,breaks = 3,labels = c(1,2,3))#平均分为3个区间,命名为1,2,3

R语言中cut()函数的用法说明

dc<-cbind(bc,age1)#把变量加入表格

R语言中cut()函数的用法说明

这样就把年龄进行了分组重编码。我们还可以对具体年龄段进行分组

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)#把变量加入表格

R语言中cut()函数的用法说明

也可以按百分位比把年龄进行分段

age3<-quantile(bc$age,c(0,.25,.50,.75,1))
dc<-cbind(bc,age3)#把变量加入表格

R语言中cut()函数的用法说明

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。

原文链接:https://mymuli.blog.csdn.net/article/details/79616374