Veröffentlicht am :
Makro EXTERNE

Dynamische rekursive Ausführung von SAS-Dateien

Dieser Code ist auch verfügbar auf: English Español Français
Attention : Dieser Code erfordert Administratorrechte.
Der Code definiert ein Makro '%findsas', das einen Systembefehl (PIPE) verwendet, um Dateien mit der Erweiterung .sas© in einem bestimmten Verzeichnis aufzulisten. Anschließend wird 'CALL EXECUTE' in einem DATA _NULL_-Schritt verwendet, um dynamisch '%include'-Anweisungen für jede gefundene Datei zu generieren. Beachten Sie, dass der Befehl 'dir /b /s' spezifisch für Windows ist und für eine Linux-Umgebung (Standard SAS© Viya) angepasst werden muss.
Datenanalyse

Type : EXTERNE


Dateiliste über einen Systembefehl (OS) erhalten.

1 Codeblock
DATA STEP
Erklärung :
Definition des Makros. Verwendet 'filename pipe', um den DOS-Befehl 'dir' auszuführen und die Dateiliste abzurufen. Der DATA-Schritt durchläuft diese Liste und führt jede Datei über '%include' aus.
Kopiert!
1%macro findsas(dir);
2
3 filename filelist pipe "dir /b /s &dir\*.sas";
4 
5 DATA _null_;
6 INFILE filelist truncover;
7 INPUT filename $100.;
8 call execute(cats('%include ', quote(trim(filename)), ';'));
9 RUN;
10 
11%mend findsas;
2 Codeblock
MACRO CALL
Erklärung :
Aufruf des Makros mit einem Pfad, der über eine Makrovariable '&path' konstruiert wurde. Eine auskommentierte Zeile zeigt ein Beispiel für einen absoluten Windows-Pfad.
Kopiert!
1%findsas(&path\mysaspgms)
2%*findsas(S:\workshop\mysaspgms)
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.