原文地址:http://blog.sina.com.cn/s/blog_534569bc0100duq3.html
下面的这个SAS程序可以将某个目录下的所有满足以下后缀的数据文件中的数据导入到SAS数据集中。数据文件后缀可以是(".XLS",".TXT",".MDB",".DBF",".CSV") ,当然也可以根据程序修改为其它数据文件,如.dat后缀的纯文本数据文件,等等。
options noxwait;
*指定数据文件所在的目录;
%let path=f:\tmp\;
*指定输出数据集前缀;
%let OutPrefix=Mydata;
x "dir &path /b > fname.txt";
*导入xls数据的宏;
%macro importdata(filename,ith);
%let fposfix=%sysfunc(reverse(%substr(%sysfunc(reverse(&filename)),1,%sysfunc(min(%length(&filename),4)))));
%let fposfix=%upcase(&fposfix);
run;
%mend;
*导入所有数据文件;
data _null_;
infile "fname.txt";
input filename & $100.;
*执行宏,只导入指定格式的数据文件;
FNFIX=UPCASE(REVERSE(SUBSTR(LEFT(REVERSE(FILENAME)),1,4)));
IF
THEN call execute('%importdata(' || trim(filename) || ',' || _n_ || ')');
run;
导入的数据集为: 前缀1,前缀2,前缀3,...(前缀符号由前面第三句定义,Mydata1,Mydata2,...)。
注意:一个XLS文件最好只有一个数据表,如果有多个表则只会导入一个表(SAS92,导入的这个表是其表名的ASCII码排序最小的)