| 所在主题: | |
| 文件名: multiple_xlsx.xlsx | |
| 资料下载链接地址: https://bbs.pinggu.org/a-3079752.html | |
| 附件大小: | |
|
【求macro中,使用数据集生成宏变量,要求去掉宏变量取值trailing的空格】
1. 目的:使用macro一次性导入一个excel的多个sheet。尝试了两种方法(方法1:call symputx; 方法2:%syscall set),都遇到了类似的问题:生成的宏变量sheet的值(&sheet的值)无法去掉trailing的空格(按理说call symputx可以去掉空格,不知为何在%macro...%mend中,&sheet取值有trailing空格,不太理解为什么)。 2. 具体求,如何在macro中创建可以去掉宏变量取值空格的方法。 当i=1时,&sheet=sheet1(注意:sheet1后不应有trailing的空格) 当i=2时,&sheet=biao2(注意:biao2后不应有trailing的空格) 当i=3时,&sheet=try3(注意:try3后不应有trailing的空格) 当i=4时,&sheet=test4(注意:test4后不应有trailing的空格) 3. 具体code如下: /*方法1*/ data excel; input sheet $9. var $6.; datalines; sheet1 sheet biao2 sheet try3 sheet test4 sheet finalyeah sheet ; run; %macro callset(); %let dsid=%sysfunc(open(excel)); %let nobs=%sysfunc(attrn(&dsid, nobs));/*数据库属性*/ %syscall set(dsid);/*与数据库联系起来,生成的宏变量为该数据库的所有变量名*/ %do i=1 %to &nobs; %let rc=%sysfunc(fetchobs(&dsid, &i)); data _null_; set excel; where &i=&nobs; call symputx(var,sheet); run; PROC IMPORT OUT= WORK.a&i DATAFILE= "保存路径\multiple_xlsx.xlsx" DBMS=EXCEL REPLACE; RANGE="&sheet$"; GETNAMES=YES; MIXED=NO; SCANTEXT=YES; USEDATE=YES; SCANTIME=YES; RUN; %put &sheet after; %end; %let dsid=%sysfunc(close(&dsid)); %mend; %callset(); /*方法2*/ data excel; input sheet $9.; datalines; sheet1 biao2 try3 test4 finalyeah ; run; %macro callset(); %let dsid=%sysfunc(open(excel)); %let nobs=%sysfunc(attrn(&dsid, nobs));/*数据库属性*/ %syscall set(dsid);/*与数据库联系起来,生成的宏变量为该数据库的所有变量名*/ %do i=1 %to &nobs; %let rc=%sysfunc(fetchobs(&dsid, &i)); PROC IMPORT OUT= WORK.a&i DATAFILE= "保存路径\multiple_xlsx.xlsx" DBMS=EXCEL REPLACE; RANGE="&sheet$"; GETNAMES=YES; MIXED=NO; SCANTEXT=YES; USEDATE=YES; SCANTIME=YES; RUN; %put &sheet after; %end; %let dsid=%sysfunc(close(&dsid)); %mend; %callset(); |
|
熟悉论坛请点击新手指南
|
|
| 下载说明 | |
|
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。 2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。 3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。 (如有侵权,欢迎举报) |
|
京ICP备16021002号-2 京B2-20170662号
京公网安备 11010802022788号
论坛法律顾问:王进律师
知识产权保护声明
免责及隐私声明