Dieses Programm beginnt mit der Erstellung eines Datensatzes 't1' mit fest kodierten Werten. Anschließend werden diese Daten nach der Variablen 'x' sortiert. Ein nachfolgender Data Step ('t2') verwendet die LAG-Funktion, um eine neue Variable 'z' zu erstellen, die den vorherigen Wert von 'y' enthält. Schließlich wendet ein letzter Schritt ('t3') eine komplexe Bedingungslogik an, die Vergleiche zwischen dem aktuellen Wert und den verzögerten Werten verwendet, um die Variablen zu ändern.
Datenanalyse
Type : CREATION_INTERNE
Die Daten werden direkt im Code über die CARDS-Anweisung im Data-Step t1 erstellt.
1 Codeblock
DATA STEP Data
Erklärung : Erstellung der Tabelle 't1' mit zwei numerischen Variablen x und y, gefüllt mit internen Daten (CARDS).
Kopiert!
data t1;
input x y;
cards;
1 5
2 6
3 6
7 9
8 10
11 12
;
run;
1
DATA t1;
2
INPUT x y;
3
CARDS;
4
15
5
26
6
36
7
79
8
810
9
1112
10
;
11
RUN;
2 Codeblock
PROC SORT
Erklärung : Sortierung der Tabelle 't1' in aufsteigender Reihenfolge nach der Variablen 'x'.
Kopiert!
proc sort data=t1; by x; run;
1
PROC SORTDATA=t1; BY x; RUN;
3 Codeblock
DATA STEP Data
Erklärung : Erstellung der Tabelle 't2' aus 't1'. Die Funktion LAG(y) wird verwendet, um den Wert von 'y' aus der vorherigen Beobachtung abzurufen und in 'z' zu speichern.
Kopiert!
data t2;
set t1 end=b;
z=lag(y);
/*if x>z or b;
proc sort; by decending x;
*/
run;
1
DATA t2;
2
SET t1 END=b;
3
z=lag(y);
4
/*if x>z or b;
5
proc sort; by decending x;
6
*/
7
RUN;
4 Codeblock
PROC PRINT
Erklärung : Anzeige des Inhalts der zuletzt erstellten Tabelle (t2) in der Standardausgabe.
Kopiert!
proc print;run;
1
PROC PRINT;RUN;
5 Codeblock
DATA STEP Data
Erklärung : Erstellung der Tabelle 't3' aus 't2'. Wendet bedingte Änderungen an: Wenn x kleiner als z ist, nimmt z den Wert von y an. Anschließend wird y mit dem Maximum zwischen seinem aktuellen Wert und dem vorherigen Wert von z aktualisiert.
Kopiert!
data t3;
set t2;
if x<z then z=y;
y=max(y,lag(z));
*if y^=z;
run;
1
DATA t3;
2
SET t2;
3
IF xTHEN z=y;
4
y=max(y,lag(z));
5
*if y^=z;
6
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.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.