SAS 批量导入外部文件代码
最近研究了一下SAS关于批量导入外部数据的问题,下面自己写了一个关于XML数据批量导入的示例宏,有一个前提,数据结构必须一致,下面为实现宏代码:
%macro batch(
*Output the dataset;
out= ,
*The path of dataset;
path=,
*The type of dataset;
type=
);
filename filelist pipe "dir &path /b ";
data flList;
infile filelist truncover;
input xmlname $200.;
if scan(xmlname,2,".") in ("&type");
run;
%let dsid=%sysfunc(open(flList,i)); *Dataset ID;
%let nobs=%sysfunc(attrn(&dsid,nobs)); *Number of variables in the dataset;
%let cld = %sysfunc(close(&dsid)); *Close dataset;
%do i = 1 %to &nobs;
data _null_;
set flList;
if _n_ = &i;
call symput ('filenames',xmlname);
run;
libname myxml xml "&path&filenames";
data item;
set myxml.item;
run;
proc datasets noprint;
append base=&out data=item;
quit;
%end;
%mend batch;
�tch(out=fileList,path=E:\test\,type=xml);
此宏通过修改局部小部分地方可以适用多种类型的文件,cvs,excel,xml......
数据分析咨询请扫描二维码