data dataset1;
infile cards truncover;
input Person $ Lang_SourceA $ ;
cards;
Bob RU
Bob SP
Bob
Bob
Sam
Sam CM
Sam
Sally RU
Sally
Sally
;
data dataset2;
infile cards truncover;
input Person $ Lang_SourceB $;
cards;
Bob SP
Bob RU
Bob GE
Bob UK
Sam CM
Sam GE
Sam UK
Sally SP
Sally UK
Sally RU
;
data want;
if _n_=1 then do;
if 0 then set dataset1;
declare hash h(dataset:'dataset1');
h.definekey('Person','Lang_SourceA');
h.definedone();
end;
set dataset2;
call missing(Lang_SourceA);
if h.check(key:Person,key:Lang_SourceB)=0 then Lang_SourceA=Lang_SourceB;
run;
... View more