如果我的表A有两列:ID和Mean,而表B有一长列包括Mean,我怎样才能用表A中的ID替换表B中的Mean列的值?
我已尝试过PROC SQL UPDATE以及DATASET MERGE和DATASET UPDATE,但是当两个表中的列数不相等时,它们会不断添加行。
答案 0 :(得分:2)
data want;
merge have1(in=H1) have2(in=H2);
by mergevar;
if H1;
run;
这将保证H2不会添加任何行,除非其中一个by值存在重复值。其他条件也可以使用;对于右侧数据集,if h2;
会做同样的事情,而if h1 and h2;
只会保留来自两个表的记录。
PROC SQL连接也应该相当容易。
proc sql;
create table want as
select A.id, coalesce(B.mean, A.mean)
from A left join B
on A.id=B.id;
quit;