合并2个SAS数据集,得出0个观测值

时间:2018-08-05 20:23:27

标签: sas

我正在尝试合并两个数据集,第一个数据集包含ID和位置,第二个数据集包含客户信息,包括与第一个数据集相同的ID。我尝试了几种不同的方法来尝试执行此操作,最近一次尝试的是:

Data Work.merged;
   merge Work.dataone (in = in1)
   Work.datatwo (in = in2);
by id location;
if in1 and in2;
Run;

这将输出包含0个观测值的“合并”数据集,SAS在日志中未输出错误或警告消息。

谢谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您的IF语句仅从两个数据集中选择匹配的记录。如果work.merged有0条记录,则意味着没有匹配项。要查看不匹配的记录,最简单的方法是添加一条PUT语句以将这些记录写入日志。

考虑:

data work.merged ;
  merge 
    work.dataone (in = in1)
    work.datatwo (in = in2)
  ;
  by id location;
  if not (in1 and in2) then put “Mismatch” (id location in1 in2)(=) ;
  if in1 and in2 ;
run ;