我有成对的数据集(A& B),但A总是有额外的观察结果在B中被完全删除,导致我丢失B中变量“Seg”的原始值。
示例:
Dataset A Dataset B Desired dataset C:
Seg Fz Seg Fz Seg Fz
1 2.3 1 2.3 1 2.3
2 9.2 2 1.3 2 .
3 1.3 3 0.9 3 1.3
4 11.4 4 .
5 0.9 5 0.9
我需要将2个数据集(A& B)合并为1个(C),并用缺失值替换A的额外观察值,以保持“Seg”变量的顺序并获得所需的数据集C. / p>
有一种简单的方法吗? 我有300对数据集,每个数据集包含44个观察值和4个变量, 所以我打算将它合并到一个宏或一个循环中。
谢谢你:)示例代码:
data A;
input Seg Fz;
datalines;
1 2.3
2 9.2
3 1.3
4 11.4
5 0.9
run;
data B;
input Seg Fz;
datalines;
1 2.3
2 1.3
3 0.9
run;
答案 0 :(得分:0)
我认为这会给你你想要的东西。
proc sql noprint;
create table c as
select a.seg,b.fz
from a as a
left join b as b
on a.fz=b.fz
order by a.seg;
quit;
但要小心,如果数据集a或b可能有重复值,这可能无法满足您的需求。