全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
15100 21
2010-02-11
悬赏 1 个论坛币 未解决
请问一下,
我要把D:\burn文件夹里的所有excel文件导入到sas里,而每个excel文件里又有很多sheet,这种情况怎么批量导入啊?宏要怎么写?
二维码

扫码加我 拉你入群

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

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

全部回复
2010-2-11 13:20:53
%macro A;
%do i=1 %to 10;
PROC IMPORT DATAFILE="D:\burn.xls"
OUT=temp01_&i DBMS=EXCEL2000 REPLACE;
   SHEET="&i";
   GETNAMES=YES;
RUN;
%end;
%mend;
%A

试试看吧
二维码

扫码加我 拉你入群

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

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

2010-2-11 15:31:05
通过SAS宏实现自动导入批量数据
filename folder pipe 'dir C:\temp /b'; /*指定待获取文件名的文件夹*/
data file_list;
length fname $13.; /*设定文件名的长度及变量名*/
infile folder truncover;  /* 获取文件名 */
input fname $13.; /* 将文件名写入fname变量中*/
call symput ('num_files',_n_);
/* 将文件数量保存到宏变量num_files中*/
stockcode=substr(fname,1,6);
/*获取股票代码*/
location=substr(fname,8,2);
/*获取股票交易所代码*/
run;
/*创建宏列别*/
data importcsv;
set file_list;
filename= trim(fname);
a='%importcsv(';
b=',';
c=')';
file "d:\temp\port.txt";
put a $ location $ b $ stockcode $ b $ filename $c;
run;
/*导入数据*/

%macro importcsv(location,stockcode,filename);
data &location.&stockcode;
/*Rember to use double */
infile "c:\temp\&filename" delimiter =',' MISSOVER DSD firstobs=2;
input stockcode $ symbol $ date lagclose open high low close volumn money updown average;
format date yymmdd10.;
informat date yymmdd10.;
run;
%mend;
%include "D:\temp\port.txt";
二维码

扫码加我 拉你入群

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

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

2010-2-11 16:05:30
你这是ROKI的吧。。。。
二维码

扫码加我 拉你入群

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

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

2010-2-11 16:29:21
pipe接口获取文件名列表,按列表依次循环用libname到XLS文件......
二维码

扫码加我 拉你入群

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

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

2010-5-15 21:13:52
呵呵,程序本来就是用来分享的。欢迎大家转贴。原贴地址:http://www.analysts.org.cn/showtopic-127.aspx
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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