楼主: twhanenao
3048 6

不同文件夹下同名EXCEL文件批量导入SAS [推广有奖]

  • 0关注
  • 0粉丝

VIP2

大专生

20%

还不是VIP/贵宾

-

威望
0
论坛币
6023 个
通用积分
27.4547
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
535 点
帖子
25
精华
0
在线时间
42 小时
注册时间
2009-5-3
最后登录
2020-3-27

楼主
twhanenao 发表于 2015-1-3 15:43:42 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

请问如何将不同文件夹下同名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;


二维码

扫码加我 拉你入群

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

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

关键词:同名EXCEL 不同文件夹 EXCEL xcel exce Documents Lenovo 股票代码 文件夹 关联方

回帖推荐

teqel 发表于6楼  查看完整内容

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

沙发
teqel 发表于 2015-1-4 04:43:13 来自手机
呵呵,这个肯定不行

藤椅
sushe1527 发表于 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,在结果里用鼠标框选你要整合到一个文件夹里使用上面程序,复制或者剪切,你看着办。

板凳
teqel 发表于 2015-1-4 12:38:38
  1. %let path=D:\Try\ReadExcel\dir1\;
  2. %let path1=D:\Try\ReadExcel\;

  3. x "dir &path.* /b > &path1.dirname.txt";

  4. %macro importxls(dirname);
  5. proc import datafile="&path.\&dirname\data1.XLS" out=ocpuy
  6. dbms=excel replace;
  7. sheet='sheet1';
  8. getnames=yes;
  9. run;

  10. PROC APPEND DATA=ocpuy BASE=oc FORCE;
  11. RUN;
  12. %mend;

  13. data _null_;
  14. infile "&path1.dirname.txt";
  15. input filename & $100.;
  16. call execute('%importxls(' || trim(filename)|| ')');
  17. run;
复制代码

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

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

7
野心411 发表于 2015-1-14 19:04:46
应该挺不错的

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-24 09:46