将矢量划分为不同的类别

时间:2014-10-18 15:38:13

标签: r

我是R的新手,并且在将数字划分为a时遇到一些困难 矢量分为称为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"}
}

当我运行此操作时,我收到以下错误:

if(high [i]&lt; 15){:缺少值需要TRUE / FALSE

时出错

另外:警告信息: 在Ops.factor(high [i],15)中:&lt;没有意义的因素。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分: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