我有两个数据集:
:
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
我尝试了合并语句,但它不起作用
实现此目的的一种方法是使用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;
MERGE语句将生成您想要的答案。为什么你认为它没有成功?
data want ;
merge first second ;
by name ;
run;