SAS使用SET创建不相交的数据集

时间:2013-11-27 15:56:12

标签: sas

是否有办法使用SET语句创建不相交的数据集? 我试过了:

DATA OnlyFirst OnlySecond InBoth;
SET  firstds(IN=A)
     seconds(IN=B);
IF A AND NOT B THEN OUTPUT OnlyFirst;
IF B AND NOT A THEN OUTPUT OnlySecond;
IF A AND B THEN OUTPUT InBoth;
Run;

但这不会产生不相交的集合。

1 个答案:

答案 0 :(得分:1)

这不是set语句的工作原理。如果您首先确保firstds和seconds都按它们共享的关键变量(或变量)排序,那么您应该能够使用merge。然后,您需要在by语句中引用该共享变量。

DATA OnlyFirst OnlySecond InBoth;
merge  firstds(IN=A)
    seconds(IN=B);
by <something shared variable>;
IF A AND NOT B THEN OUTPUT OnlyFirst;
IF B AND NOT A THEN OUTPUT OnlySecond;
IF A AND B THEN OUTPUT InBoth;
Run;