【发布时间】:2018-04-12 07:53:16
【问题描述】:
给定两个简单的数据集A和B如下
DATA A; INPUT X @@;
CARDS;
1 2 3 4
RUN;
DATA B; INPUT Y @@;
CARDS;
1 2
RUN;
我正在尝试创建两个名为 C 和 D 的数据集,一个使用重复的 SET 和 OUTPUT 语句,另一个使用 DO 循环。
DATA C;
SET B;
K=1; DO; SET A; OUTPUT; END;
K=K+1; DO; SET A; OUTPUT; END;
K=K+1;
RUN;
DATA D;
SET B;
DO K = 1 TO 2;
SET A; OUTPUT;
END;
RUN;
我认为 C 和 D 应该相同,因为 DO 循环应该重复这些语句,如 C 的 DATA 步骤中所示,但事实证明它们是不同的。
Dataset C:
Obs Y K X
1 1 1 1
2 1 2 1
3 2 1 2
4 2 2 2
Dataset D:
Obs Y K X
1 1 1 1
2 1 2 2
3 2 1 3
4 2 2 4
有人可以解释一下吗?
【问题讨论】:
-
请注意,第一个数据步骤中的 DO/END 块没有做任何事情。您可以删除 DO 和 END 语句,没有它们,该步骤将完全相同。
标签: sas