我正在使用最简单的程序来找到所有分数的平均值,从而消除最低分数。
data new;
low1=smallest(1,score_1-score_6);
low2=smallest(2,score_1-score_6);
tot=score_1+score_2+score_3+score_4+score_5+score_6;
avg=(tot-low1-low2)/4;
set mydata;
run;
'mydata'在输出表中不包含任何缺失值,数据向下移动一个单元格。 输出看起来像dis
id low1 score_1 score_2 score_3 score_4 score_5 score_6 low2 tot avg
1 . 0 0 10 80 0 75 . . .
2 0 0 0 0 75 80 0 0 165 41.25
3 0 0 50 10 60 55 0 0 155 38.25
4...and so on
sas会生成如下注释: 注意:由于对缺失值执行操作而生成缺失值
我无法理解为什么计算值会在第2行打印而不是从第1行开始? 帮助将不胜感激。谢谢你!
答案 0 :(得分:1)
将SET语句放在DATA语句之后(我认为通常是一个好主意)。正如你所知,第一行是试图创建一个变量,但没有任何数据;数据仅在最后读取。