data test;
input subject exam1 exam2;
final = (exam1+exam2)/2;
if final ge 0 and final lt 60 then grade='d';
else if final ge 60 and final lt 80 then grade='c';
else if final ge 80 and finla lt 90 then grade='b';
else if final ge 90 then grade='a';
datalines;
10 80 84
7 85 89
4 90 86
20 82 85
25 94 94
14 88 84
;
proc print data=test;
id subject;
var exam1 exam2 final grade;
run;
但运行后结果:
subject exam1 exam2 final grade10 80 84 82.0 b7 85 89 87.0 b4 90 86 88.0 b20 82 85 83.5 b25 94 94 94.0 b14 88 84 86.0 bgrade全部为b,并没有正确的按if语句给出的区间范围进行分级,大家帮我看看是不是哪里代码出错了,谢谢了!
![](https://bbs-cdn.datacourse.cn/static/2017/f68.png)