Sas 使用另一个表更新数据集中某列的值

Sas 使用另一个表更新数据集中某列的值,sas,Sas,如果表A有两列:ID和Mean,而表B有一长串包含Mean的列,那么如何用表A中存在的ID替换表B中Mean列的值 我尝试过PROC-SQL-UPDATE和DATASET-MERGE以及DATASET-UPDATE,但当两个表中的列数不相等时,它们会不断添加行 data want; merge have1(in=H1) have2(in=H2); by mergevar; if H1; run; 这将保证H2不会添加任何行,除非其中一个by值存在重复值。也可以使用其他条件如果h2将对右侧数据集

如果表A有两列:ID和Mean,而表B有一长串包含Mean的列,那么如何用表A中存在的ID替换表B中Mean列的值

我尝试过PROC-SQL-UPDATE和DATASET-MERGE以及DATASET-UPDATE,但当两个表中的列数不相等时,它们会不断添加行

data want;
merge have1(in=H1) have2(in=H2);
by mergevar;
if H1;
run;
这将保证H2不会添加任何行,除非其中一个by值存在重复值。也可以使用其他条件<代码>如果h2将对右侧数据集执行相同的操作,如果h1和h2,则执行
将只保留来自两个表的记录

data want;
merge have1(in=H1) have2(in=H2);
by mergevar;
if H1;
run;
PROC-SQL-join也应该相当容易地工作

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;