有网友问了,我如何对连续型资料进行分组,常见的有按照中位数分组、四分位数分组,甚至分为5组。
这个问题其实很简单的了。
用两个函数,一个是quantile函数,另外一个是cut函数
1. quantile()函数的应用
该函数目的是获得分组界值
比如说,求某个百分位比
data <- c(1,2,3,4,5,6,7,8,9,10,5,6,7,43,9,4,12,46,22,0,14,15,3,5,7,9,4,22)
quantile(data,0.5)
结果就是
又比如,五分位数
quantile(data,c(0.2,0.4,0.6,0.8))
至于四分位数,那更简单了
quantile(data)
还可以按照固定序列进行,
quantile(data,seq(0.1,1,0.1),na.rm=T)
2. cut()函数的应用
在quantile()的结果基础上,接着可以使用cut()函数来进行连续型变成分类数据。
比如,把刚才的data向量变成4分组,那么,在breaks设置四分位数值4.0,7.0,10.5即可
new<-cut(data,breaks=c(-Inf,4.0,7.0,10.5,Inf),labels = FALSE)
table(new)
也可以增加labels,如此一来就直接变为分类变量的因子了。
new<-cut(data,breaks=c(-Inf,4.0,7.0,10.5,Inf),labels = c("Q1","Q2","Q3","Q4"))
table(new)
is.factor(new)
就这么简单!
3. 风暴统计平台的快速分组的办法
郑老师的统计分析平台,就是利用这个原理开展的数据整理的功能,基本上所有模块都存在着这个功能,形成的数据集还可以下载备用。
请百度风暴统计或者直接复制网址到电脑端打开。
这个功能很强大,很方便,既可以根据自己的需要设置分类界值,也可以按照四分位数分组、或者中位数分组。