いつもお世話になっております。
以下のようなデータセットA,Bがあり、それらを単純にマージしてCに
するという動きをHashで代替できないかと考えております。
data A;
USUBJID="01";output;
USUBJID="02";output;
run;
data B;
USUBJID="01";AESEQ=1;output;
USUBJID="01";AESEQ=2;output;
run;
data C;
merge A B;
by USUBJID;
run;
ですが以下のように書いても上手くCが再現されません。そもそもHashでは
フルマージはできないのでしょうか。
ご教示のほどよろしくお願い申し上げます。
data C;
if 0 then set B;
if 1 then do;
declare hash ae(dataset:"B");
ae.definekey("USUBJID");
ae.definedata("AESEQ");
ae.definedone();
end;
do until(eof);
set A end=eof;
if ae.find()=0 then output;
else do;
call missing(AESEQ);
output;
end;
end;
stop;
run;