我是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;没有意义的因素。
非常感谢您的帮助!
答案 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