例如,如果某个ID在任何观察结果中都具有Op = 1,我想删除该ID的所有行。
我想将以下数据集(Data1)更改为Data2。
示例:
我仅使用SAS EG版本执行任务,因此无法自己完成此过程。预先非常感谢。
答案 0 :(得分:0)
有两个解决方案,首先使用数据步骤。这是通过将表与自身合并而实现的,但是第二次仅与不需要的行合并。仅保留那些不在子集中的行ID。
data data2;
merge data1 data1(keep=id op where=(_op=1) rename=(op=_op) in=i);
by id;
if ^i;
drop _op;
run;
另一种方法是使用sql创建一个新的数据集,该数据集的ID不在生成与方法一类似的子集中。
proc sql;
create table data2 as select * from data1 where id not in(select id from data1 where op=1);
quit;