Hi @Patrick
I need to create RANK variable in the dataset shown below (for each USUBJID and AE).
The input variables are USUBJID, ASTDT, AENDT, AE, LLT.
dataset sorted by USUBJID , AE , ASTDT and AENDT.
if the AENDT and LLT of the prior AE is not the ASTDT and LLT of the next AE, then we need to create RANK as +1.
If the ASTDT and LLT of the next AE is the AENDT and LLT of the previous AE record then RANK remains the same.
This is the code , what we are using for now
data want;
set test;
by usubjid ae;
length rank 8 maxrank 8;
retain rank;
if _n_=1 then do;
declare hash end ();
end.definekey("aendt", "llt");
end.definedata("rank");
end.definedone();
end;
if first.usubjid then do;
rc=end.clear();
maxrank=1;
rank=1;
rc=end.add();
end;
else do;
if end.find(key:astdt, key:llt) ne 0 then
do;
maxrank + 1;
rank=maxrank;
rc=end.add();
end;
else do;
if end.check() ne 0 then
rc=end.add();
end;
end;
drop rc maxrank;
proc print;
run;
... View more