在两个不同的数据集在SAS比较可变(Compare a variable in two differ

2019-10-28 08:02发布

我需要比较两个不同的数据集,其具有的变量不同名的两个变量,然后我需要的,如果记录匹配其他写在SASYES观察其写入SASNO。

我从DB2检索记录,并重新命名的变量。

我的SAS代码

DATA _NULL_;
   SET WORKLIST;
   SET UNITFUNC;
   IF PRIMNUM=CORRPMNM AND MODELCD=MCMODEL THEN DO; 
      FILE SASYES; 
      PUT @01  ANSFACT1 $CHAR7. 
          @09  CORRPMNM $CHAR12.
          @21  MCMODEL  $CHAR8. 
      OUTPUT SASYES; 
   END; 
   ELSE DO; 
      FILE SASNO; 
      PUT  @01  ANSFACT1 $CHAR7. 
           @09  CORRPMNM $CHAR12. 
           @21  MCMODEL  $CHAR8. 
      OUTPUT SASNO;
   END;
RUN;  

当我提交的代码,所有的意见都写SASNO即使他们是在这两个数据集匹配的观测较少。 请帮我。

注:我曾用MERGE也从两个表中读取数据,结果是一样的。

任何人都可以帮忙吗?

Answer 1:

SET需要一个行的时间,从未遇到过的数据集进行比较。 喜欢拍照的卡之一栈,并将其设置在另一个上面,然后每次服用一卡。

MERGE合并两个数据集,让你把卡两重叠,把它们并排,并期待在每个桩顶一次。 所以这就是你想在这里做的:将它们合并。

data compare;
  merge ds1 ds2;
  by commonID;
run;

您可能要合并by一个ID变量,或者你可能想没有一个合并by声明,只是从每个数据集从每个数据集等比较第一个记录,第二

data compare;
  merge ds1 ds2;
run;

您可以在数据步骤中添加代码,以进一步限制什么是输出,或者你可以合并成一个数据集,然后看它在视觉和事后产生额外的代码。



文章来源: Compare a variable in two different data-sets in SAS
标签: sas