问题描述
“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
将具有零行。