代码以计算编号数据集的观察结果:
data _NULL_;
if 0 then set sashelp.cars nobs=n;
put "no. of observations =" n;
stop;
run;
if = 0意味着什么?条件如何运作?
答案 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;