Veröffentlicht am :
Datenmanipulation CREATION_INTERNE

Umrechnung der Nachbeobachtungszeiten: Arrays und Schleifen

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript erstellt zunächst einen longitudinalen Datensatz mit Nachbeobachtungszeiten in Tagen für mehrere Patienten. Anschließend werden zwei Methoden zur Umwandlung dieser Werte in Jahre dargestellt: eine naive Methode, die jede Berechnung zeilenweise ausführt, und eine optimierte Methode, die ein SAS©-Array verwendet, das durch eine DO-Schleife iteriert wird. Das Ergebnis zeigt die Effizienz der iterativen Programmierung zur Codevereinfachung.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden direkt im Code über die DATALINES-Anweisung innerhalb des ersten DATA-Schritts definiert.

1 Codeblock
DATA STEP Data
Erklärung :
Erstellung des initialen Datensatzes 'long_study' mit Patienten-IDs und 10 Nachbeobachtungsmessungen (followup) in Tagen, manuell eingegeben über DATALINES.
Kopiert!
1DATA long_study;
2 INPUT id followup1 followup2 followup3 followup4 followup5 followup6 followup7 followup8
3 followup9 followup10;
4DATALINES;
510001 0 2 359 713 1191 1443 1820 2185 2548 2910
610003 0 1 436 799 1085 1538 1807 2246 2540 2904
710004 0 1 184 362 548 730 904 936 1084 1134
810005 0 44 218 422 602 786 946 1150 1309 1533
9;
10RUN;
2 Codeblock
DATA STEP Data
Erklärung :
Umrechnung der Dauer von Tagen in Jahre mittels eines expliziten sequentiellen Ansatzes (manuelle bedingte Verarbeitung). Jede Variable wird einzeln neu berechnet, was den Code lang und repetitiv macht.
Kopiert!
1DATA long_study2;
2 SET long_study;
3 followup1 = round((followup1 / 365.25), .1);
4 followup2 = round((followup2 / 365.25), .1);
5 followup3 = round((followup3 / 365.25), .1);
6 followup4 = round((followup4 / 365.25), .1);
7 followup5 = round((followup5 / 365.25), .1);
8 followup6 = round((followup6 / 365.25), .1);
9 followup7 = round((followup7 / 365.25), .1);
10 followup8 = round((followup8 / 365.25), .1);
11 followup9 = round((followup9 / 365.25), .1);
12 followup10 = round((followup10 / 365.25), .1);
13RUN;
3 Codeblock
DATA STEP Data
Erklärung :
Optimierung der vorherigen Verarbeitung: Verwendung eines Arrays, das die Variablen 'followup1' bis 'followup10' gruppiert, und einer iterativen DO-Schleife, um die mathematische Konvertierung dynamisch und prägnant anzuwenden.
Kopiert!
1DATA long_study3;
2 SET long_study;
3 array followup {10} followup1-followup10;
4 DO i = 1 to 10;
5 followup{i} = round((followup{i} / 365.25), .1);
6 END;
7RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.