Hallo, Ich möchte gerne aus meinem Datensatz mit vielen Patienten, die Patienten herausgreifen, die mindestens einmal aza_absetzenjemals=1 haben. Wenn dies mindestens einmal erfolgt ist, sollen alle Einträge mit dieser pati_id in eine neue Liste die Ausgangsgruppe übernommen werden. Die pati_id sind zudem nach der Anzahl besuche aufsteigend sortiert. Ich habe bisher diesen Code geschrieben, allerdings erhalte ich dann in Ergebnis eine Liste, in der die Werte unterhalb des ersten Falles von aza_absetzenjemals=1 immer 1 anzeigen. Überhalb jedoch bleibt der Wert auf 0. data TG1_Help; set TG1; by pati_id; retain aza_absetzenjemals; lag_pati_id = lag(pati_id); lag_aza_absetzenjemals=lag(aza_absetzenjemals); * Initialisiere die Liste für pati_ids; if _N_ = 1 then do; declare hash pati_ids(); pati_ids.defineKey('pati_id'); pati_ids.defineDone(); end; put pati_id visit aza_absetzenjemals; if aza_absetzenjemals = 1 then do; do index = _N_-1 to 1 by -1 while(pati_id=lag_pati_id and lag_aza_absetzenjemals ne 1); put pati_id visit index lag_pati_id aza_absetzenjemals lag_aza_absetzenjemals; aza_absetzenjemals=1; put pati_id visit index lag_pati_id aza_absetzenjemals lag_aza_absetzenjemals; *output; put pati_id visit index lag_pati_id aza_absetzenjemals lag_aza_absetzenjemals; set TG1 point=index; end; end; else do; put pati_id visit index lag_pati_id aza_absetzenjemals lag_aza_absetzenjemals; aza_absetzenjemals=0; put pati_id visit index lag_pati_id aza_absetzenjemals lag_aza_absetzenjemals; *output; end; output; run; proc print data=TG1_Help; var pati_id visit aza_absetzenjemals; run; Ich bin über jede Hilfe dankbar! Liebe Grüße Franzi
... View more