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.
Ich bin über jede Hilfe dankbar!
Liebe Grüße Franzi
Das folgende program erstellt zunächst eine Hash-Tabelle und lädt sie mit allen Patienten-IDs, die mindestens einen Fall (eine Zeile) mit aza_absetzenjemals=1 haben. Anschließend wählt die Logik alle Zeilen aus TG1 aus, die eine übereinstimmende patient_id in der Hash-Tabelle haben.
data TG1_Help;
* Initialisiere die Liste für pati_ids;
if _N_ = 1 then
do;
/* Hash liste mit pati_id's die mindestens einmal aza_absetzenjemals=1 haben */
declare hash pati_ids(dataset:'TG1(where=(aza_absetzenjemals=1 ))');
pati_ids.defineKey('pati_id');
pati_ids.defineDone();
end;
set TG1;
if pati_ids()=0 then output;
run;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.