Veröffentlicht am :
ETL CREATION_INTERNE

Umrechnung von Zeiteinheiten mittels Arrays und Schleifen

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Programm veranschaulicht die Verwendung von SAS©-Arrays (ARRAY), um eine identische mathematische Transformation auf mehrere Spalten anzuwenden. Es erstellt einen Testdatensatz, konvertiert die Werte (Division durch 60 mit Rundung auf 0,1) mittels einer DO-Schleife und zeigt das Endergebnis an.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden direkt im Code über die DATALINES-Anweisung innerhalb des DATA STEP EXPER generiert.

1 Codeblock
DATA STEP Data
Erklärung :
Erstellung des Datensatzes 'EXPER' mit 5 numerischen Variablen (TIME0 bis TIME4), gefüllt mit internen Daten (datalines).
Kopiert!
1DATA EXPER;
2 INPUT TIME0-TIME4;
3DATALINES;
4100 200 300 400 500
555 110 130 150 170
6;
2 Codeblock
DATA STEP Data
Erklärung :
Transformation der Daten in der Tabelle 'MINUTES'. Verwendung eines ARRAYS zur Referenzierung der Spalten TIME0-TIME4 und einer DO-Schleife, um jeden Wert durch 60 zu teilen und auf die erste Dezimalstelle zu runden.
Kopiert!
1DATA MINUTES;
2 SET EXPER;
3 array TIME[0:4] TIME0-TIME4;
4 DO i = 0 to 4;
5 TIME[i]= round(TIME[i]/60,0.1);
6 END;
7 drop i;
3 Codeblock
PROC PRINT
Erklärung :
Ausgabe des transformierten Datensatzes 'MINUTES' in die Standardausgabe.
Kopiert!
1 
2PROC PRINT
3DATA=MINUTES;
4title'Problem 15.8 Listing of Time Measured in Minutes';
5RUN;
6 
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.