2017-12-04 5 views
0

Ich habe mehrere Dateien mit denselben Namenskonventionen und demselben Datenformat: Dsn1 bis Dsn7.SAS - Wie führe ich ein Array über mehrere Dateien hinweg?

Im Moment Ich bin mit dem folgenden

data temp (drop=i); set Dsn1; 
array S_(12) S_AUD--S_USD; 
do i=1 to 12; 
S_[i] = log(S_{i}); 
end; 

ich nicht in der Lage, herauszufinden, wie dies für alle Dateien zu tun?

Jede Hilfe geschätzt

Antwort

1

Es kommt darauf an. Sie könnten ein Makro erstellen und es für jede Datei ausführen. Oder Sie können es für alle Dateien gleichzeitig ausführen und eine "große" Datei erstellen.

data temp (drop=i); 
    set Dsn1 - dsn7; 
    array S_(12) S_AUD--S_USD; 
    do i=1 to 12; 
      S_[i] = log(S_{i}); 
    end; 
run; 

Makro-Ansatz:

%macro loop (num_datasets=); 
    %do i=1 %to &num_datasets; 

data temp&i. (drop=i); 
set Dsn&i; 
array S_(12) S_AUD--S_USD; 
do i=1 to 12; 
     S_[i] = log(S_{i}); 
end; 
run; 

%end; 

%mend; 

%loop(num_datasets=5); 

Das Makro Anhang in der Dokumentation hat einige Beispiele dafür, wie das funktionieren kann:

https://communities.sas.com/t5/SAS-Communities-Library/SAS-9-4-Macro-Language-Reference-Has-a-New-Appendix/ta-p/291716

+0

danken Ihnen für Ihre Hilfe. Ich muss es für jede Datei ausführen (sie müssen getrennt aufbewahrt werden) – wazza2013

Verwandte Themen