“if first.col3”是什么意思? Sas企业指南

问题描述

“if first.col3”是什么意思? (Sas 企业指南)

Data table2;
set table1;
by col1 col2;
if first.col3;
run;

在“if first.col3”之后没有语句

解决方法

first.<variable-name> 是特殊变量,当变量名列在 1 语句中时,它被设置为 BY 的值,并且该值来自新组的第一行由变量组成,变量从属于变量。

对于 first.<variable-name> 的用例,并且变量名未列在 BY 语句中,您将得到一条日志行说明

NOTE: first.<variable-name> is uninitialized.

未初始化的变量在 DATA 步开始时被赋予一个缺失值。

不带 if <expression>then 语句被称为 subsetting-if,只有当表达式为真时,程序控制才会继续超出它。

如果您的情况,那么 if first.col3 的表达式永远不会为真,因为 col3 未列在 BY 语句中,因此控制从未超出子集 if

没有明确编码的 OUTPUT 语句的 DATA 步默认会在控制到达步的末尾时输出一行。

在您的情况下,控制永远不会到达步骤的末尾,因此永远不会发生 OUTPUT 并且结果数据集 table2 将具有零行。