全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
9308 4
2011-07-20
悬赏 10 个论坛币 已解决
发现贵宝地,想请教一个问题:
比如说我有10个清单(ss1,ss2..ss10),想分别生成10个不同的数据集。他们的字段顺序格式都是一样的,在导入时,往往就要反复运行同样的导入程序(当然还要修改数据集得名称等),很是麻烦
想请教一下:如何实现批量的导入这些数据,分别生成数据集(ss1,ss2...)。是要用宏来做还是怎么用循环,谢谢啦
本人菜鸟,最好能解答的详细点,附上程序语句,呵呵

最佳答案

shenliang_111 查看完整内容

我给你三组程序,应该可以解决楼主的问题 /* 批量导入多个excel*/ %macro ss/parmbuff; %let i=1; %let dsn=%scan(&syspbuff,&i); %put &dsn; %do %while(&dsn ne); PROC IMPORT OUT=WORK.a&i DATAFILE= "D:\&dsn..xls" DBMS=EXCEL REPLACE; SHEET="Sheet1$"; GETNAMES=yes; MIXED=NO; SCANTEXT=YES; USEDATE=YES; SCANTIME=YES; RUN; %let i=%eval(&i+ ...
二维码

扫码加我 拉你入群

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

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

全部回复
2011-7-20 19:59:24
我给你三组程序,应该可以解决楼主的问题
/* 批量导入多个excel*/
%macro ss/parmbuff;
%let i=1;
%let dsn=%scan(&syspbuff,&i);
%put &dsn;
%do %while(&dsn ne);
PROC IMPORT OUT=WORK.a&i
            DATAFILE= "D:\&dsn..xls"
            DBMS=EXCEL REPLACE;
     SHEET="Sheet1$";
     GETNAMES=yes;
     MIXED=NO;
     SCANTEXT=YES;
     USEDATE=YES;
     SCANTIME=YES;
RUN;
%let i=%eval(&i+1);
%let dsn=%scan(&syspbuff,&i);
%end;
%mend ss;
options nomlogic nomprint nosymbolgen;
%ss(1,2,book1,shen)
/*批量导出多个excel*/
%macro sss/parmbuff;
%let i=1;
%let dsn=%scan(&syspbuff,&i);
%put &dsn;
%do %while(&dsn ne);
PROC EXPORT DATA= WORK.&dsn
            OUTFILE= "E:\&dsn..xls"
            DBMS=EXCEL REPLACE;
     SHEET="Sheet";
RUN;
%let i=%eval(&i+1);
%let dsn=%scan(&syspbuff,&i);
%end;
%mend sss;
%sss(test1 test2 test3)
/*特定逻辑库下的所有数据集转化为excel文件*/
%macro sss/parmbuff;
%let i=1;
%let lib=%scan(&syspbuff,&i);
%let i=2;
%let dsn=%scan(&syspbuff,&i);
%put &dsn;
%do %while(&dsn ne);
PROC EXPORT DATA=&lib..&dsn
            OUTFILE= "E:\&dsn..xls"
            DBMS=EXCEL REPLACE;
     SHEET="Sheet";
RUN;
%let i=%eval(&i+1);
%let dsn=%scan(&syspbuff,&i);
%end;
%mend sss;
%macro tt(lib);
proc sql noprint;
select memname into :namelist separated by ' '
from dictionary.tables
where libname=upcase("&lib") and  memtype='DATA';
%put &namelist;
quit;
%sss(&lib &namelist)
%mend;
%tt(s)
二维码

扫码加我 拉你入群

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

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

2011-7-20 21:09:52
楼上的,分都给你算了,呵呵
我的数据清单是unl格式的,上面的程序应该如何调整呀
二维码

扫码加我 拉你入群

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

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

2011-7-20 21:14:52
论坛上有类似的帖子,可以先搜一下是否和自己的问题一样。个人感觉论坛上的帖子能解决你的问题。
1.是一个excel文件下的十个清单?看这个帖子:https://bbs.pinggu.org/viewthread ... p;page=1#pid9539589
2.如果是单独的excel文件看:https://bbs.pinggu.org/thread-1111573-1-1.html
二维码

扫码加我 拉你入群

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

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

2014-10-25 10:49:44
谢谢,学习啦
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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