SAS-“;其中变量;对;若未缺失(变量)”;

SAS-“;其中变量;对;若未缺失(变量)”;,sas,Sas,为了使代码更具可读性,我面临以下情况 考虑一个数据步骤,在该步骤中,您只希望选择具有变量值的观测值。似乎有两种方法可以使用a来实现这一点:单独表示变量或使用函数 比如说, 案例1。其中变量 data where_var; set sashelp.electric; where AllPower; run; data where_not_missing; set sashelp.electric; where not missing(AllPower); run; 案例2。未缺

为了使代码更具可读性,我面临以下情况

考虑一个数据步骤,在该步骤中,您只希望选择具有
变量值的观测值。似乎有两种方法可以使用a来实现这一点:单独表示变量或使用函数

比如说,

案例1。其中变量

data where_var;
  set sashelp.electric;
  where AllPower;
run;
data where_not_missing;
  set sashelp.electric;
  where not missing(AllPower);
run;
案例2。未缺失的位置(变量)

这些都会产生相同的结果。然而,我不确定这是否是必然的

  • 这些功能等同吗
  • 案例1是否仅适用于案例2
  • 它们是否会产生不同的结果

在SAS中,除0或缺失之外的任何数值均为真。有关更多信息,请参阅


这意味着案例1和案例2并非100%等效。如果AllPower=0,结果将不同。

如果您试图确定AllPower是否有一个值,则只有情况2起作用


案例1是选择
AllPower
非零的记录。零是一个值,与缺失的值不同。

而且要明确的是,
0
not
“0”
为false;除所有空格字符串之外的任何字符串[其计算结果为缺失]计算结果为“true”。案例1是选择
AllPower
为非零值且不缺失正确的记录-我应该说它是非零值。