Merge 在同一步骤中合并并在合并的数据集中创建变量

Merge 在同一步骤中合并并在合并的数据集中创建变量,merge,sas,Merge,Sas,我正在合并SAS中的两个数据集“set_x”和“set_y”,并希望在生成的合并数据集“matched”中创建一个变量“E”: 但是,在结果表“匹配”中,缺少E值。如果我只输出匹配的值(即,如果x=y,则使用;),则正确计算E 如果输出不匹配和匹配的观测值,是否可以在同一数据步骤中创建“E”?在计算E之前输出结果,然后在下一次迭代开始时将E设置为缺失。所以你希望E在输出之前可用 data matched unmatched_x unmatched_y ; merge set_x (in=x) s

我正在合并SAS中的两个数据集“set_x”和“set_y”,并希望在生成的合并数据集“matched”中创建一个变量“E”:

但是,在结果表“匹配”中,缺少E值。如果我只输出匹配的值(即,如果x=y,则使用
),则正确计算E


如果输出不匹配和匹配的观测值,是否可以在同一数据步骤中创建“E”?

在计算E之前输出结果,然后在下一次迭代开始时将E设置为缺失。所以你希望E在输出之前可用

data matched unmatched_x unmatched_y ;
merge set_x (in=x) set_y (in=y) ;
by merge_key ;
  IF C = 2 THEN DO ;
       E = A ;
     END;

  ELSE DO ;
    E = floor(B - D) ;
  END ;
if x=y then output matched;
       else if x then output unmatched_x ;
       else if y then output unmatched_y ;

run ;
data matched unmatched_x unmatched_y ;
merge set_x (in=x) set_y (in=y) ;
by merge_key ;
  IF C = 2 THEN DO ;
       E = A ;
     END;

  ELSE DO ;
    E = floor(B - D) ;
  END ;
if x=y then output matched;
       else if x then output unmatched_x ;
       else if y then output unmatched_y ;

run ;