我有两个数据集:
首先:
Name Bill
A 1
B 2
C 3
D .
E .
F 6
第二
Name Bill
D 4
E 5
我想将两者组合成一个表,如下所示:
Name Bill
A 1
B 2
C 3
D 4
E 5
F 6
我尝试了合并声明,但它没有用。
答案 0 :(得分:0)
实现此目的的一种方法是使用proc sql。
让我们先设置您的样本数据:
DATA t1;
INPUT Name $ Bill;
DATALINES;
A 1
B 2
C 3
D .
E .
F 6
run;
DATA t2;
INPUT Name $ Bill;
DATALINES;
D 4
E 5
run;
我只是想从第一个表中替换缺少的值,而在第二个表中可以使用左连接和合并函数替换相应的缺失值。
procedure sql;
create table newT as
select
t1.Name
,coalesce(t1.Bill, t2.Bill) as Bill
from t1
left join t2 on t1.Name = t2.Name
;
quit;
答案 1 :(得分:0)
MERGE声明将产生您想要的答案。为什么你认为它不起作用?
data want ;
merge first second ;
by name ;
run;