Veröffentlicht am :
ETL CREATION_INTERNE

Datenverarbeitung und Erstellung eines neuen Datensatzes mit bedingter Schleife

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript beginnt mit der Ausführung eines DATA-Schritts, um einen temporären Datensatz namens 'b' zu erstellen. Die Werte der Variablen 'id', 'x1', 'x2' und 'y' werden direkt im Skript mithilfe der CARDS-Anweisung integriert. Sieben Beobachtungen werden auf diese Weise initialisiert.
Anschließend wird ein zweiter DATA-Schritt implementiert, um einen neuen Datensatz, 'newdata', basierend auf dem Datensatz 'b' zu generieren. In diesem DATA-Schritt wird für jede Beobachtung von 'b' eine 'DO i=1 TO 3'-Schleife verwendet. Innerhalb dieser Schleife wird eine Variable 'decision' erstellt und ihr Wert wird durch eine bedingte Anweisung 'IF y=i THEN decision=1; ELSE decision=0;' bestimmt. Da die 'OUTPUT'-Anweisung in der Schleife platziert ist, generiert jede Beobachtung des Datensatzes 'b' drei separate Beobachtungen in 'newdata', die jeweils einem Wert von 'i' (1, 2 oder 3) und dem entsprechend berechneten 'decision'-Wert entsprechen.
Schließlich wird die Prozedur PROC PRINT aufgerufen, ohne einen Datensatz anzugeben, wodurch der Inhalt des resultierenden Datensatzes 'newdata' (der zuletzt erstellte) in der Standardausgabe von SAS© angezeigt wird.
Datenanalyse

Type : CREATION_INTERNE


Die Daten des ursprünglichen Datensatzes 'b' werden intern über die CARDS-Anweisung in einem DATA-Schritt erstellt. Der Datensatz 'newdata' wird anschließend von 'b' abgeleitet. Es werden keine externen Daten oder SASHELP-Bibliotheken verwendet.

1 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA-Schritt-Block ist für die Erstellung eines temporären SAS-Datensatzes namens 'b' verantwortlich. Er definiert vier Variablen ('id', 'x1', 'x2', 'y') und füllt sie mit sieben Beobachtungen, die direkt im Skript über die Anweisung 'CARDS;' bereitgestellt werden. Diese Methode wird häufig verwendet, um kleine Test- oder Beispieldatensätze zu erstellen.
Kopiert!
1DATA b;
2 INPUT id x1 x2 y;
3 CARDS;
4 1 12 35 1
5 2 22 38 2
6 3 25 34 3
7 4 12 56 1
8 5 21 54 2
9 6 20 45 3
10 7 25 34 3
11 ;
12RUN;
2 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA-Schritt erstellt einen neuen Datensatz namens 'newdata', indem er die Beobachtungen aus dem Datensatz 'b' liest. Eine Schleife 'DO i=1 to 3' wird für jede Beobachtung von 'b' ausgeführt. Innerhalb der Schleife wird eine Variable 'decision' berechnet: Sie ist 1, wenn der Wert von 'y' dem Schleifenindex 'i' entspricht, ansonsten 0. Die 'OUTPUT'-Anweisung innerhalb der Schleife stellt sicher, dass für jede Beobachtung von 'b' drei Beobachtungen in 'newdata' geschrieben werden, jede mit einem anderen 'decision'-Wert, der der Schleifeniteration entspricht.
Kopiert!
1DATA newdata;
2 SET b;
3 DO i=1 to 3;
4 IF y=i THEN decision=1;
5 ELSE decision=0;
6 OUTPUT;
7 END;
8RUN;
3 Codeblock
PROC PRINT
Erklärung :
Dieser Block führt die PROC PRINT-Prozedur aus. Ohne Angabe des Datensatzes ('DATA=') zeigt PROC PRINT standardmäßig den zuletzt in der SAS-Sitzung erstellten oder geänderten Datensatz an, der hier 'newdata' ist. Diese Prozedur wird verwendet, um den Inhalt eines Datensatzes schnell zu visualisieren.
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.