什么`.Z`在SAS中意味着什么?

Nil*_*dat 7 sas

对这样一个完全无知的问题抱歉,但我不知道任何SAS,只需知道一行代码的作用,所以我希望有人可以提供帮助.我有一个变量数组的循环,以及一个基于比较的if子句.Z,但这个变量是无处定义的,所以我猜这是某种SAS语法技巧.这是循环:

ARRAY PTYPE{*} X4216 X4316 X4416 X4816 X4916 X5016;

DO I=1 TO DIM(PTYPE);
    IF (PTYPE{I}<=.Z) THEN PUT &ID= PTYPE{I}=;
END;
Run Code Online (Sandbox Code Playgroud)

所以在第一次迭代时,循环会检查值X4216是否小于.Z,然后......?ID是数据集中的另一个变量,但我不知道在if子句的右侧发生了什么.我简要地查阅了SAS文档,以确定&符号是指宏,但我对SAS的了解仅限于了解正在发生的事情.

任何人都可以开导我吗?

Tom*_*Tom 13

.Z是一个特殊的缺失值.在SAS中,缺失值(您可能称之为NULL值)由句点表示.还有27个其他特殊缺失值由句点后跟字母或下划线表示.缺失值是不同的,并且都被认为小于任何实际数字..Z是"最大的".所以PTYPE{I}<=.Z基本上测试是否缺少值.您可以改为使用MISSING(PTYPE{I})相同的测试.右侧是在数组中写出具有缺失值的变量的名称和值,以及在宏变量ID中命名的变量的名称和值.

  • 是的,这是正确的解释. (2认同)
  • 哎呀,我再也不会写 `myVar = .`,但总是 `missing(myVar)` (2认同)