首页 > 解决方案 > PROC PRINT 和 PROC MEANS

问题描述

我正在解决一个问题,但有些东西我不明白。

数据集 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;

我的理解是 OBS= 指定 SAS 将处理的观察数,因此对于 PROC PRINT 语句,我认为从观察号 100 开始,到观察号 499 结束,将处理 500 个观察。

对于 PROC MEANS 步骤,OBS=MAX 指示 SAS 处理所有观测值,但由于起始观测值是从 500 开始的,所以观测值的总数将从 500 到 5,000,即 4,501 个观测值。

但是,这个问题的答案说 PROC PRINT 有 501 个观察结果,我很困惑......

谢谢你。

标签: sas

解决方案


OBS=不是要处理的观察数,您应该将其视为一个LASTOBS=选项(不存在)

OBS=500由于隐含的 FIRSTOBS 为 1,仅此一项就将处理 500 行。

对于FIRSTOBS=100 OBS=500行 100 到 500 的有效情况,将处理 401 行。


推荐阅读