Veröffentlicht am :
ETL CREATION_INTERNE

Datensimulation und Transformation mittels Array

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Skript generiert zunächst einen Testdatensatz (wbh), der simulierte Kombinationen von Alter und Rasse über verschachtelte Schleifen enthält. Anschließend wird eine fortgeschrittene Transformation in einem DATA-Schritt unter Verwendung eines ARRAY und der RETAIN-Anweisung durchgeführt, um die Daten horizontal zu manipulieren (Typ Pivot) und Summen zu berechnen, wobei die Variablen bei Änderung der Altersgruppe zurückgesetzt werden.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden vollständig durch den Code mittels verschachtelter DO-Schleifen generiert, es ist keine externe Quelle erforderlich.

1 Codeblock
DATA STEP Data
Erklärung :
Erstellung des Datensatzes 'wbh' durch Simulation. Zwei verschachtelte Schleifen generieren Beobachtungen für 10 Altersstufen und 8 Rassen und berechnen eine Variable 'n' als Produkt der beiden.
Kopiert!
1DATA wbh;
2 DO age=1 to 10;
3 DO race=1 to 8;
4 n=age*race;
5 OUTPUT;
6 END;
7 END;
8RUN;
2 Codeblock
PROC PRINT
Erklärung :
Anzeige des Inhalts der zuvor generierten Tabelle 'wbh'.
Kopiert!
1PROC PRINT;RUN;
3 Codeblock
DATA STEP Data
Erklärung :
Datentransformation. Verwendung eines Arrays 'a' (Variablen m1-m8) mit RETAIN, um die Werte zwischen den Iterationen zu behalten. Die Schleife 'do i=1 to 8' setzt die Werte zu Beginn jeder Altersgruppe (first.age) auf fehlend (.) zurück. Der Wert 'n' wird dem Index zugewiesen, der der 'race' entspricht, und eine Gesamtsumme 'totn' wird berechnet.
Kopiert!
1DATA test; SET wbh; BY age race;
2 array a(8) m1-m8;
3 retain m1-m8;
4 DO i=1 to 8;
5 IF first.age THEN DO;
6 a(i)=.;
7 END;
8 END;
9 
10 a(race)=n;
11 totn=sum(of m1-m8);
12RUN;
4 Codeblock
PROC PRINT
Erklärung :
Anzeige des Endergebnisses in der Tabelle 'test'.
Kopiert!
1PROC PRINT;RUN;
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.