【发布时间】:2017-07-28 23:28:27
【问题描述】:
我有一个名为 test 的数据集,其中一个名为“id”的数值变量有 3 个观察值:
1
2
3
我正在使用 do 循环创建另一个,如下所示:
DATA abc;
DO i = 1 to 3;
SET test;
m+1;
OUTPUT;
END;
RUN;
这将返回 3 个观察值。
如果我将 do loop 从 1 更改为 4 并删除输出语句,我会得到一个空数据集。我无法理解这一点。有人可以解释一下吗?
【问题讨论】:
-
这似乎不是真的。日志说了什么?如果输入数据
test有 3 个观察值,即使您将 DO 循环的上限设置为 2,000,您的数据步骤也应该写入 3 个观察值。 -
@Tom 声明是正确的,您还有其他问题。您的“测试”数据集中的变量名称是什么?
-
我刚刚更正了我的问题。如果我从 do 循环中删除输出语句,我会得到一个空数据集。循环1到4时,测试数据集中的变量名是'id'。我无法理解的是SET语句读取整个数据集,所以通过DO循环3次,我们应该不读取整个数据3次,得到9 次观察?
标签: sas