数数元数据对SAS数据集的观察

时间:2020-06-30 05:25:02

标签: sas

代码以计算编号数据集的观察结果:

data _NULL_;
 if 0 then set sashelp.cars nobs=n;
 put "no. of observations =" n;
 stop;
run;

if = 0意味着什么?条件如何运作?

2 个答案:

答案 0 :(得分:1)

零是SAS中的固有false值。因此,永远不会执行if 0 then set..语句中的Set语句。 nobs = n在编译时设置。因此,如果您的唯一目标是在SAS数据集中找到观测值的数量,则无需读取任何实际数据。

答案 1 :(得分:1)

在评估布尔逻辑时,SAS会将​​零或缺失值视为FALSE,而将其他任何值视为TRUE。因此,IF 0 THEN允许您拥有数据步骤编译器可以看到的代码,但实际上从未运行过。在数据步骤开始运行之前,将由NOBS =选项创建的变量分配一个值。

对于这个简单的步骤,您可以通过将SET语句放在STOP语句之后来获得相同的结果。

data _null_;
  put "no. of observations =" n;
  stop;
  set sashelp.cars nobs=n;
run;