SAS - "其中变量"与#34;不丢失(变量)"

时间:2017-09-20 14:47:09

标签: sas

在尝试使我的代码更具可读性时,我面临以下情况。

考虑一个数据步骤,您只想在其中选择具有variable值的观测值。似乎有两种方法可以使用WHERE statement执行此操作:单独表达变量或使用MISSING函数。

例如,

案例1. VARIABLE

data where_var;
  set sashelp.electric;
  where AllPower;
run;

案例2.不丢失的地方(VARIABLE)

data where_not_missing;
  set sashelp.electric;
  where not missing(AllPower);
run;

这些产生相同的结果。但是,我不确定是否一定会这样。

  • 这些在功能上是否相同?
  • 案例1案例2仅为syntactic sugar吗?
  • 是否存在产生不同结果的情况?

2 个答案:

答案 0 :(得分:5)

在SAS中,除0或缺失之外的任何数值都为true。有关详细信息,请参阅https://support.sas.com/documentation/cdl/en/lrcon/62955/HTML/default/viewer.htm#a000780367.htm

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

答案 1 :(得分:0)

如果您要确定AllPower 是否具有值,那么只有案例2才有效。

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