2014-10-18 40 views
0

我對R非常陌生,在將一個 向量中的數字劃分爲A(< 15),B(15-30),C(30-45)和D (> 45)(最終運行多元迴歸模型)將一個向量除以類別

我目前正在使用if函數(儘管如果有更好的方法來做 ,我也可以用它),下面是代碼:

high<- inc_edu_waste$Percentage.high 

cathigh<- rep(0, times=408) 
for (i in 1:408){ 
if (high[i] < 15){high[i] <- "A"} 
if (high[i]>=15 & high[i]<30){cathigh[i] <- "B"} 
if (high[i]>=30 & high[i]<45){cathigh[i] <- "C"} 
if (high[i]>=45 & high[i]<100){cathigh[i] <- "D"} 
} 

當我運行此我得到以下錯誤:

錯誤如果(高[I] < 15){:錯過其中TRUE/FALSE需要

另外值:警告消息: 在Ops.factor(高[I],15):<沒有意義爲因素。

您的幫助將非常感謝!

+1

考慮使用'cut'像'LETTERS [1:5] [切口(高,斷裂= C(-Inf,15,30,45,100,Inf文件),labels = FALSE)]' – akrun 2014-10-18 15:40:31

+1

請提供[可重現的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – 2014-10-18 15:47:14

回答

1

作爲akrun提示使用cut

> v <- 1:99 
> cut(v, c(0,14,29,44,99), LETTERS[1:4]) 
[1] A A A A A A A A A A A A A A B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C D D D D 
[49] D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D 
[97] D D D 
Levels: A B C D 
相關問題