我正在研究一个问题,有一些我不明白的东西.
数据集sasdata.prdsales包含5,000个观察值.
libname sastemp 'SAS-data-library';
options obs=500;
proc print data=sasdata.prdsales (firstobs=100);
run;
options obs=max;
proc means data=sasdata.prdsales(firstobs=500);
run;
Run Code Online (Sandbox Code Playgroud)
我的理解是OBS =指定SAS将处理的观测数量,因此对于PROC PRINT语句,我认为从观测编号100开始,以观测编号499结束,将处理500个观测值.
对于PROC MEANS步骤,OBS = MAX指示SAS处理所有观测,但由于起始观测值是500,观测总数将从500到5,000,即4,501次观测.
然而,这个问题的答案说PROC PRINT有501个观察结果,我很困惑......
谢谢.
OBS=
不是要处理的观察数量,您应该将其视为一个LASTOBS=
选项(不存在)
OBS=500
因为1的隐式FIRSTOBS,将单独处理500行.
对于FIRSTOBS=100 OBS=500
行100到500 的有效情况将被处理,或401行.