全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7057 17
2009-11-24
请问: 有没有方法把一个文件夹中的EXCEL都读入SAS?

我有很多EXCEL文件, 都不长, 有相同的列, 但有近百个?
有没有办法, 都读入SAS,
我现在是一一读入SAS, 再合并, 很慢. 想请教有没有好办法?


谢谢
二维码

扫码加我 拉你入群

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

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

全部回复
2009-11-24 14:39:56
使用filename语句及pipe可以遍历到某文件夹下的所有xls文件名称并存储在sas数据集中,使用proc import然后合并这些文件就可以了,下是google提供的一小段代码,细节楼主可以参考filename的pipe devic type的用法。

filename terms pipe 'dir D:\data\*.xls/b';
data xlsfilename ;
   infile terms pad missover end=eof;
   input @1 filename $40.;
   call symput('file' || left(_n_),filename);
   if eof then call symput('nfiles',left(_n_));
run;
二维码

扫码加我 拉你入群

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

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

2009-11-24 15:55:32
能行吗???
二维码

扫码加我 拉你入群

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

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

2009-11-24 16:24:44
*指定数据文件所在的目录;
%let path=f:\tmp\;
*把所有xls放入tmp中

*指定输出数据集前缀;
%let OutPrefix=gan;

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;
二维码

扫码加我 拉你入群

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

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

2009-11-24 17:03:28
4#的方法很简洁,长见识了,学习中。。。把我的也补充完整

%let extfile = xls ;/*扩展名*/
%let dirpath= D:\data\ ; /*文件所在目录路径*/
filename dirpipe pipe 'dir &dirpath.\*..&extfile./b' ;

data _info ;
  length filepath $120. ;
  infile terms pad missover end=eof;
  input @1 filename $20.;
  filepath = "&dirpath" || trim(filename) ;
  filename = scan( filename , 1 ) ;
  call symput('filepath' || left(_n_),filepath);
  call symput('filename' || left(_n_),filename);
  if eof then call symput('nfiles',left(_n_));
run;

%macro importdbf ;
  %do i = 1 %to &nfiles ;
    proc import datafile = "&&filepath&i" out = %trim(&&filename&i) dbms = &extfile ;
    run ;
  %end ;

  proc sql noprint ;
    select filename into : datasets separated by ' ' from _info ;
  quit ;

  data all ;
    set &datasets ;
  run ;
%mend importdbf ;

%importdbf ;
二维码

扫码加我 拉你入群

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

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

2009-11-25 05:47:07
太感谢各位高人了.
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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