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

时间:2015-09-05 14:34:48

标签: sas

对这样一个完全无知的问题抱歉,但我不知道任何SAS,只需知道一行代码的作用,所以我希望有人可以提供帮助。 我有一个变量数组的循环,以及一个基于与.Z的比较的if子句,但是这个变量是无处定义的,所以我猜这是某种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;

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

任何人都可以启发我吗?

1 个答案:

答案 0 :(得分:12)

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