SAS中的“.Z”是啥意思?
Posted
技术标签:
【中文标题】SAS中的“.Z”是啥意思?【英文标题】:What does `.Z` mean in SAS?SAS中的“.Z”是什么意思? 【发布时间】:2015-09-05 14:34:48 【问题描述】:对于这样一个完全不知情的问题,我深表歉意,但我不知道任何 SAS,只需要知道一行代码的作用,所以我希望有人能提供帮助。
我有一个变量数组的循环,以及一个基于与.Z
比较的 if 子句,但是这个变量没有在任何地方定义,所以我猜这是某种 SAS 语法技巧。这是循环:
ARRAY PTYPE* X4216 X4316 X4416 X4816 X4916 X5016;
DO I=1 TO DIM(PTYPE);
IF (PTYPEI<=.Z) THEN PUT &ID= PTYPEI=;
END;
所以在第一次迭代时,循环会检查X4216
中的值是否小于.Z
,然后...? ID
是数据集中的另一个变量,但我不知道 if 子句右侧发生了什么。我已经简要地查阅了 SAS 文档,以找出 & 符号是指宏,但我对 SAS 的了解仅限于了解正在发生的事情。
谁能赐教?
【问题讨论】:
【参考方案1】:.Z 是一个特殊的缺失值。在 SAS 中,缺失值(您可能称之为 NULL 值)由句点表示。还有 27 个其他特殊缺失值由句点后跟字母或下划线表示。缺失值是不同的,并且都被认为小于任何实际数字。 .Z 是“最大的”。所以PTYPEI<=.Z
基本上是在测试是否缺少值。您可以改为使用MISSING(PTYPEI)
进行相同的测试。右边是写出数组中缺少值的变量的名称和值,以及宏变量ID中命名的变量的名称和值。
【讨论】:
酷,非常感谢!那么我可以将整个事情解释为一个警告结构,它只是为了打印出缺少值的观察的 ID? 糟糕,我再也不会写myVar = .
了,但总是missing(myVar)
显然,您可以使用proc format; value myFormat .A = 'alpha' .B = 'beta';
为它们分配不同的标签,这样可以使列表更加清晰。以上是关于SAS中的“.Z”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章