如题,假设我的work.a数据集中有30多万行数据,我想把其中前1000行中符合var8这个变量等于500的输出到另一work.b数据集中,不使用循环的程序很简单,如下:
data work.b;
set work.a(firstobs=1 obs=1000);
if var8=500 then output;
run;
我想问如果我想使用do循环,若是do放在set前面,会和不加set没区别,它会很快地将30万数据里所有符合条件的20多万数据都输出到b里:
data work.b;
do _n_ = 1 to 1000;
set work.a;
where var8=500;
end;
run;
但若是do放在set后头,它又会将30多万数据循环好多遍,一直出不来结果:
data work.b;
set work.a;
do _n_ = 1 to 1000;
where var8=500;
end;
run;
求助,怎么使用循环实现将a中前1000行符合条件的输出到b中?