先判断一个条件,一次判断所有行。
data out(keep=A B C);
set in;
if 满足条件1 then 行数保留,其余行删除。
A="XXX";
B="XXXX";
C="XX";
run;
把out数据集用proc append附加到某个数据集。
再判断第二个条件,同样一次判断所有行。
data out(keep=A B C);
set in;
if 满足条件1 then 行数保留,其余行删除。
A="YYY";
B="YYYY";
C="YY";
run;
把out数据集用proc append附加到某个数据集。
如此循环直到所有条件写完。
这样的问题之一就是重复打开原始数据集多次。
我希望程序结构是:
data _null_;
set in;
if 满足条件1 then do;
A="XXX";
B="XXXX";
C="XX";
把A B C附到某个数据集;
end;
if 满足条件2 then do;
A="YYY";
B="YYYY";
C="YY";
把A B C附到某个数据集;
end;