Wie können wir tun bedingte Iteration in einem sas-Datensatz
-
05-09-2019 - |
Frage
Wie können wir Iteration in einem sas-Datensatz zu tun. Zum Beispiel habe ich die erste gewählt. einer Variablen. Und will das Auftreten einer bestimmten Bedingung zu finden und einen Wert gesetzt, wenn es genügt
Lösung
SAS Daten Schritt hat einen eingebauten in Schleife über Beobachtungen. Sie müssen nicht irgend etwas tun, es sei denn, Sie wollen, aus irgendeinem Grund. Zum Beispiel erzeugt die folgende eine Zufallszahl für jede Beobachtung:
data one;
set sashelp.class;
rannum = ranuni(0);
run;
Wenn Sie über Variablen Schleife wollen, dann gibt es Arrays. Zum Beispiel initialisiert die folgenden Variablen var1 bis var10, mit Zufallszahlen:
data one;
array vars[1:10] var1-var10;
do i = 1 to 10;
vars[i] = ranuni(0);
end;
run;
Der erste. und zuletzt. Fahnen werden automatisch generiert, wenn Sie eine (sortiert) Daten mit einer durch Anweisung gesetzt. Ein Beispiel:
proc sort data=sashelp.class out=class;
by age;
run;
data one;
set class;
by age;
first = first.age;
last = last.age;
run;
/* check */
proc print data=one;
run;
/* on lst
Obs Name Age first last
1 Joyce 11 1 0
2 Thomas 11 0 1
3 James 12 1 0
4 Jane 12 0 0
5 John 12 0 0
6 Louise 12 0 0
7 Robert 12 0 1
8 Alice 13 1 0
...
18 William 15 0 1
19 Philip 16 1 1
*/