我有多个文件具有相同的命名约定和相同的数据格式:Dsn1到Dsn7。
目前我正在运行以下
data temp (drop=i); set Dsn1;
array S_(12) S_AUD--S_USD;
do i=1 to 12;
S_[i] = log(S_{i});
end;
我无法弄清楚如何为所有文件执行此操作?
任何帮助表示赞赏
答案 0 :(得分:1)
这取决于。您可以创建一个宏并为每个文件运行它。或者您可以同时为所有文件运行它并创建一个“大”的文件。文件。
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;
宏观方法:
%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);
文档中的宏附录有几个例子说明了它是如何工作的: