举个例子
下面是两个macro,第一个macro创建10个模拟数据集,和一个目录数据集。
第二个macro打印每一个数据集,并把所有的数据集 append 成一个数据集.
其中有怎么从目录文件中读取一个样本文件名. 可能对你有帮助.
%macro createSample; /* create simulated 10 datasets */
data myfiles; /* create a dataset that hold the dataset names */
do i=101 to 110;
name='Data'||put(i,3.);
output;
end;
drop i;
run;
proc sql;
select name into :F_name separated by ' '
from myfiles;
quit;
%let N_file = %sysfunc(countw(&F_name));
%do i=1 %to &N_file;
%let data=%qscan(&F_name, &i, %str( ));
data &data;
do j=1 to 10;
var=ranuni(&i);
output;
end;
run;
%end;
%mend createSample;
%createSample;
/* do some demo work such as print each dataset and append all the dataset together */
%macro Print_Append_data;
proc sql;
select name into :F_name separated by ' '
from myfiles;
quit;
%let N_file=%sysfunc(countw(&F_name));
%do i=1 %to &N_file;
%let data=%qscan(&F_name, &i, %str( ));
proc print data=&data;
run;
proc append base=all data=&data;
run;
%let all=&data;
%end;
%mend print_append_data;
%Print_Append_data;
|