1.首先对 sas 自带数据 sashelp.shoes 做处理:
创建新变量 salesrange 对于 sales < 100000 的 obs , salesrange = "lower"
对于 100000 <= sales <= 200000 的 obs , salesrange = "middle"
对于 其他 的 obs , salesrange = "upper"
2: 打印出 salesrange 为 lower 的 observations
本人代码如下:
数据处理:
data work.shoerange;
set sashelp.shoes;
length salesrange $20;
if sales ^=. and sales < 100000 then salesrange = "lower";
else if 100000 <= sales <= 200000 then salesrange = "middle";
else salesrange = "upper";
run;
打印所需数据:
proc print data = work.shoerange;
where salesrange = "lower";
run;
正确答案应该是打印出288条。 但用上述 proc print 之后程序似乎把所有 obs 都改为了 lower 然后打印出来。
ps: 如果新建 data set 再用 where salesrange = "lower" 做筛选就能正确选择出288个 OBS
想请教下各位大神PROC PRINT代码哪里出错了。