基础不好,编程真累。上图是我的原始数据,下图是期望的输出结果。
过程就是对原始数据var1-varN进行各种条件判断,符合条件就输出一段信息,关键是
一行数据有N个判断条件,也就是说
一行数据会有N条输出。
现在我的判断是这样的:
先判断一个条件,一次判断所有行。
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;
...直到多个条件判断完毕。
run;
请问如何实现?或者其它更合理的结构请分享。谢谢!