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

War es hilfreich?

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
*/
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top