12.07.2015 Aufrufe

SAS-Makro-Programmierung: - Urz

SAS-Makro-Programmierung: - Urz

SAS-Makro-Programmierung: - Urz

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

infile in2;input produkt kosten datum;run;data monat3;infile in3;input produkt kosten datum;run;Die %do-Schleife wird 3 mal hintereinander ausgeführt. Die Indexvariable i wird in jedemDurchgang um das Inkrement 1 erhöht.Es ist auch möglich %Do-Schleifen zu verschachteln:Beispiel 2: %macro create2;%do jahr=90 %to 92;%do mon=1 %to 12;data dat_&jahr&mon;infile in&jahr&mon;input person umsatz zeit;run;%end;%end;%mend create2;Aufruf: %create2;Die Schleife wird 36 mal(3*12) durchgeführt, und erzeugt für jeden Monat der Jahre 90 bis 92 einenDatenschritt (siehe Ergebnis des ersten Beispiels).5.7 %Do - %Until - %End-AnweisungDie %Do - %Until -Anweisung führt die %Do-Schleife so lange aus, bis eine zuvor vereinbarteBedingung erfüllt ist.Syntax:Beispiel:Aufruf:%do %until (Ausdruck);Text und <strong>Makro</strong>-Programmanweisungen%end;%macro tue_bis(num);%put Start Macro tue_bis: num ist &num;%do %until(&num>10);%put ****&num****;%let num=%eval(&num+1);%end;%put Ende Macro tue_bis: num ist &num;%mend tue_bis;%tue_bis(-23)In unserem Beispiel soll die %do-%until-Schleife so lange ausgeführt werden, bis die VariableNUM größer als 10 ist. Nach jedem Durchgang bekommt die Variable NUM mit Hilfe der %eval-Funktion (siehe Kap. 6.2) zu ihrem Ausgangswert (im Beispiel -23) eine 1 aufaddiert, und erhältsomit einen neuen Wert. In dem Moment, in dem dieser Wert größer als 10 (also bei 11) gewordenist, bricht das <strong>Makro</strong> ab und es erscheint die Meldung, daß das <strong>Makro</strong> beendet ist.5.8 %Do - %While - %End-Anweisung23

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!