bxfly 发表于 2014-4-8 10:59:18

excel中多个sheet导入sas的问题

1、将多个sheet导入多个数据集里面(1)利用sas excel引擎libname d excel 'C:\Users\quan\Desktop\D题\附件2.xls'; PROC PRINT DATA=d."pa $"N;RUN;另外可以直接利用excel引擎里做一些数据变换data d.total; set d.'pa $'n d.'pb $'n;RUN;http://ww2.sinaimg.cn/large/73d8a243gw1ef8ky45dc7j206505qaa2.jpg
这里有两点强调:$符号与数据集名字pa之间一定有一个空格,没有空格的话则会显示下面这个错误    ERROR: 文件“D.'pa$'n.DATA”不存在。第二点 n表示引用符号的标记,一定要紧邻单引号或双引号后面,否则也是有错误的。 (2)利用proc import 过程将多个sheet导入指定的逻辑库libname d 'C:\Users\quan\Desktop\2013夏令营题\D题\附件2.xls';%macro quan; proc sql noprint;   select count (distinct (memname)) INTO :TOT   from sashelp.vtablewhere libname='D' ;SELECT DISTINCT (memname) into :s1-:s%trim(%left(&tot))from sashelp.vtable   where libname='D';   select distinct(compress(MEMNAME,"',$")) into: v1 - :v%trim(%left(&tot))      from sashelp.vtablewhere libname='D';quit; %DO I=1 %TO &TOT; %put &&v&i; %put &&s&i;proc import datafile= 'C:\Users\quan\Desktop\2013夏令营题\D题\附件2.xls' out=&&v&I replace; getnames=yes; range=&&s&I;run;%END;%mend;%quan; 这里利用了sas 数据字典里面的知识。Sashelp.vtable视图保存了sas 所有逻辑库里面的数据名字以及数据所在的逻辑库等等信息。利用了compress函数,提取了excel中sheet名字并变成宏变量。 2、将多个sheet里面的数据合并为一个数据集其实如果将多个sheet导入了多个数据集里面,之后的合并方法有很多了。Data步中set语句,sql中OUTER UNION,以及append语句都可以做到。但是append更为高效点。libname d 'C:\Users\quan\Desktop\2013夏令营题\D题\附件2.xls';%macro quan; proc sql noprint;   select count (distinct (memname)) INTO :TOT   from sashelp.vtablewhere libname='D' ;SELECT DISTINCT (memname) into :s1-:s%trim(%left(&tot))from sashelp.vtable   where libname='D';   select distinct(compress(MEMNAME,"',$")) into: v1 - :v%trim(%left(&tot))      from sashelp.vtablewhere libname='D';quit; %DO I=1 %TO &TOT; %put &&v&i; %put &&s&i;proc import datafile= 'C:\Users\quan\Desktop\2013夏令营题\D题\附件2.xls' out=&&v&I replace; getnames=yes; range=&&s&I;run;/加载到一个数据集,纵向合并时proc append会比data步更有效率/data all;if _n_=0 then set &&v&I; run;proc append base=all data=&&v&I force;run;%END;%mend;%quan; 参考:http://crackman.net/?p=243*/如何合并sas数据集和一个EXCEL文件中的两个sheet http://www.dataguru.cn/article-2126-1.html求把excel中多个sheet导入SAS,多个sheethttp://bbs.pinggu.org/thread-1122443-1-1.html

slash 发表于 2014-4-9 00:05:17

good stuff!

mono 发表于 2014-4-9 09:53:36

挺不错的,尤其是对小数据用户。

dan 发表于 2014-4-14 16:14:46

谢谢!!!

dan 发表于 2014-4-25 11:17:12

非常感谢!!
页: [1]
查看完整版本: excel中多个sheet导入sas的问题