是否可以将do until (eof)
嵌套在do until
或do while
循环中?我无法使其正常工作。
数据
data have;
do i = 1 to 3;
output;
end;
run;
示例-在第一个j
data want;
j = 1;
do while (j < 4);
do until (eof);
set have end=eof;
end;
call missing(eof);
output;
j + 1;
end;
run;
让我知道我是否还没有足够清楚地说明我的问题。谢谢!
答案 0 :(得分:1)
通常,您可以在任何其他类型中使用任何类型的DO循环。
您的特定程序将在第一次尝试在外部DO循环的第二次迭代上运行SET语句时停止,因为没有更多的观察要读取。当大多数普通的SAS数据耗尽其输入流时,它们以相同的方式停止。
如果您真的想重新读取整个数据集,请在SET语句上使用POINT=
选项。请确保有一种方法可以停止该步骤,因为该步骤将无法再读取输入流的末尾。
data want;
do j=1 to 4;
do p=1 to nobs;
set have point=p nobs=nobs ;
* Do something there ;
end;
* Do something else here ;
end;
* and maybe something here too ;
stop;
run;