2014-02-12 91 views
1

我想用相同的幅度对班级中的变量进行分类。 我还没有找到一个简单的方法来做到这一点...有没有一个功能? 在这一点上与工作:R相同的幅度分类

n<-13 
r<-(max(data[,3])-min(data[,3]))/ (n-1) 
bornes<-seq(from=min(data[,3]),to=max(data[,3]), by=r) 


sel<-data[,3] < min(bornes) 
data$classe[sel]<-1 
sel<-data[,3] > max(bornes) 
data$classe[sel]<-13 


for(i in 2:length(bornes)-1){ 
    b1<-bornes[i-1] 
    b2<-bornes[i] 

sel<-data[,3] > b1 & data[,3] < b2 
data$classe[sel]<-i 
} 

它的工作,但它的丑陋...有一个更好的办法? 感谢的

Ë

+0

我不完全知道,但是为直方图创建频率表还没有很长的路要走吗?看看'hist'和它创建的输出对象。 –

+0

感谢卡尔,当然是代表!它更优雅与hist(data [,3],bornes)!如果我想从分界点添加一个列的分类?一个好主意? – delaye

回答

1

看看cut

n_breaks <- 13 
data <- rnorm(100) 
categories <- cut(data, seq(min(data), max(data), length.out=n_breaks), include.lowest=T) 
(data.frame(data,categories)) 

希望这会有所帮助。

+0

好极了!谢谢 – delaye