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!
data wbh;
do age=1 to 10;
do race=1 to 8;
n=age*race;
output;
end;
end;
run;
1
DATA wbh;
2
DO age=1 to 10;
3
DO race=1 to 8;
4
n=age*race;
5
OUTPUT;
6
END;
7
END;
8
RUN;
2 Codeblock
PROC PRINT
Erklärung : Anzeige des Inhalts der zuvor generierten Tabelle 'wbh'.
Kopiert!
proc print;run;
1
PROC 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!
data test; set wbh; by age race;
array a(8) m1-m8;
retain m1-m8;
do i=1 to 8;
if first.age then do;
a(i)=.;
end;
end;
a(race)=n;
totn=sum(of m1-m8);
run;
1
DATA 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 THENDO;
6
a(i)=.;
7
END;
8
END;
9
10
a(race)=n;
11
totn=sum(of m1-m8);
12
RUN;
4 Codeblock
PROC PRINT
Erklärung : Anzeige des Endergebnisses in der Tabelle 'test'.
Kopiert!
proc print;run;
1
PROC 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.
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.