全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2994 6
2015-01-03

请问如何将不同文件夹下同名EXCEL文件批量导入SAS.我有2500个以股票代码命名的文件夹,每个文件夹中都有一个相同的EXCEL表格.请问各位高人,如何通过SAS程序批量导入.我用了宏循环,但由于股票代码之间存在断号,所以会出现前一个文件被重复执行很多次.重复的次数,刚好是这两个股票代码之间的间隔,例如前两个数据分别为600100600250,600100 会被重复执行150(600250-600100).请问如何解决这个问题,急死了,请各位帮帮忙啊,感激涕陵.程序如下:

%macro dr;

%do i=000001 %to 601898;

proc importdatafile="C:\Documents andSettings\Lenovo\桌面\2008\&i\关联方资金占用"

out=book.ocpuy

dbms=excelreplace;

textsize=250;

run;

databook.oc;set book.ocpuy book.oc ;

run;

%end;

%mend;

%dr;


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-1-4 04:43:13
呵呵,这个肯定不行
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-4 11:14:12
*指定数据文件所在的目录;
%let path=f:\tmp\;
*指定输出数据集前缀;
%let OutPrefix=****;
x "dir &path.*.xls /b > &path.fname.txt";

%macro importxls(filename,ith);
proc import datafile="&path.&filename" out=&OutPrefix.&ith dbms=excel replace;
run;
*以下三行语句是合并所有数据集,条件要求:数据集变量结构一致;
data all;
   set %if &ith ne 1 %then all; &OutPrefix.&ith;
run;
%mend;
data _null_;
infile "&path.fname.txt";
input filename & $100.;
*执行宏;
call execute('%importxls(' || trim(filename) || ',' || _n_ || ')');
run;

上面好像是要求在同一个文件夹下,没试过分开的,要想取得一个文件夹对应一个xls文件这样的格式,可以在关联方资金占用文件夹下按下键盘的CRTL+F,在搜索里输入*.xls,在结果里用鼠标框选你要整合到一个文件夹里使用上面程序,复制或者剪切,你看着办。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-4 12:38:38
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-4 12:43:28
将所有的文件目录拷到D:\Try\ReadExcel\dir1\下,在上一级生成一个dirname.txt文件放所以的目录名称。在data step里面调用宏。测试了一下,好像可以
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-4 12:45:38
将文件目录拷贝到新建目录D:\Try\ReadExcel\dir1\下,然后在上一级目录里生成文件dirname.txt存放文件目录的名称。再用data step调用宏。测试了一下,好像可以
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群