0
如果我有表A有两列:ID和平均值,表B有很长的列列表(包括平均值),如何替换平均值列的值在表B中存在表A中存在的ID?用另一个表更新数据集中列的值
我已经试过PROC SQL UPDATE和两个DATASET MERGE和DATASET更新,但是不断增加行时列数不是两个表中相同。
如果我有表A有两列:ID和平均值,表B有很长的列列表(包括平均值),如何替换平均值列的值在表B中存在表A中存在的ID?用另一个表更新数据集中列的值
我已经试过PROC SQL UPDATE和两个DATASET MERGE和DATASET更新,但是不断增加行时列数不是两个表中相同。
data want;
merge have1(in=H1) have2(in=H2);
by mergevar;
if H1;
run;
这将保证H2不会添加任何行,除非其中一个值具有重复值。其他条件也可以使用; 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;