原来数据大概这样的:
[[1]]
ID class score
1 1 1 44
2 2 1 53
3 3 1 90
.
.
.
[[4]]
ID class score
204 204 4 0
205 205 4 84
206 206 4 80
207 207 4 61
208 208 4 52
209 209 4 63
210 210 4 49
然后我是想#以60,70,85为界,将成绩分为“优秀”、“中等”、“及格”、“不及格”四类
写了下面这个
for(i in 1:4)
{
classn[]$score[which(classn[]$score<60)]<-"不及格"
classn[]$score[which(classn[]$score>=60&classn[]$score<70)]<-"及格"
classn[]$score[which(classn[]$score>=70&classn[]$score<85)]<-"中等"
classn[]$score[which(classn[]$score>=85)]<-"优秀"
}
classn
但是结果会出错 全部都显示优秀
[[1]]
ID class score
1 1 1 优秀
2 2 1 优秀
3 3 1 优秀
4 4 1 优秀
5 5 1 优秀
6 6 1 优秀
7 7 1 优秀
8 8 1 优秀
9 9 1 优秀
10 10 1 优秀
11 11 1 优秀
12 12 1 优秀
13 13 1 优秀
一直想不通什么原因
把那些代码稍微改下
classn[][which(classn[]$score<60),3]<-"不及格"
也还是全部显示优秀
观察结果,有一两个score=100的数据没有赋值"优秀"
于是修改 classn[][which(classn[]$score>=85&classn[]$score<=100),3]<-"优秀"
结果发现所有score数据都已赋值 但是也还是只有"不及格""优秀" 两项 就是赋值也是乱的
1.尝试删除了赋值优秀那一行代码,结果显示又正常了
2.确定没有输入法错误
求R大神帮下忙,谢谢!


雷达卡





京公网安备 11010802022788号







