Schleife in data-set Befehl
Verfasst von Zuralein am 27 Juli, 2010 - 13:14
Hallo zusammen,
wie kann ich folgendes elegant mit einer Schleife lösen?
data M1;
set Daten.Datensatz_0901; run;
data M2;
set Daten.Datensatz_0902; run;
...
data M12;
set Daten.Datensatz_0912; run;
Vielen Dank schonmal vorab!
»
- Anmelden oder Registrieren um Kommentare zu schreiben

SAS-Macro
Hallo,
wenn bekannt ist wie viele Dateien es werden sollen, ist es am einfachsten mit einem Macro zu machen.
%LET anz_data = 12; /* Hier wird die Anzahl der zu lesenden Dateien eingetragen */
%DO i = 1 %TO &anz_data;
DATA M&i;
set daten.datensatz09&i;
RUN;
%END;
Wenn führende Nullen zu berücksichtigen sind wäre es wie folgt:
%LET anz_data = 12; /* Hier wird die Anzahl der zu lesenden Dateien eingetragen */
%DO i = 1 %TO &anz_data;
%IF &i < 10
%THEN %DO;
DATA _null_;
i = "&i";
j = "0" !! COMPRESS(i);
CALL SYMPUT('j',j);
RUN;
%END;
DATA M&i;
set daten.datensatz09&j;
RUN;
%END;
%MEND;
%read_data;
Ich hoffe das hilft etwas.
Viele Grüße
BIGAIRFOX
Vielen Dank
Vielen Dank,
genau das hab ich gesucht.
führende Nullen geht auch einfacher
%LET anz_data = 12; /* Hier wird die Anzahl der zu lesenden Dateien eingetragen */
%DO i = 1 %TO &anz_data;
DATA M&i;
set daten.datensatz09%sysfunc(putn(&i.,Z2.));
RUN;
%END;
%mend;
VG Guido Stosnach