全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
437 2
2025-05-07
悬赏 200 个论坛币 未解决
我需要将一个文件夹中的excel全部导入到sas中,目前写了一个代码,把所有的路径都读取到sas数据中了,怎么根据sas数据中的路径实现数据的导入?
这个是读取文件路径的代码,保存到了filename中,是这样的,现在就是怎么利用这个数据,把这些数据导入到sas中?

%let path=C:\重要资料\2025\word;

filename temp pipe "dir ""&path.\*.xlsx"" /b";

data file_combine1;
  infile temp truncover;
  input path $100.;
run;

%let slash=%sysfunc(ifc(%index(&sysscp.,WIN),\,/));

data filename;
  length filenum 8 filepath $100.;
  dirref=filename('_dummy1_',"&path.");
  dirrc=dopen('_dummy1_');
  if dirrc then do;
    do filenum=1 to dnum(dirrc);
      filepath="&path.&slash."||dread(dirrc,filenum);
      if upcase(scan(filepath,-1,'.'))^="XLSX" then continue;

      *Ensure file can be accessed;
      filref=filename('_dummy2_',trim(filepath));
      filrc=fopen('_dummy2_');
      if filrc then do;
        filrc=fclose(filrc);
        output;
      end;

    end;
    dirrc=dclose(dirrc);
  end;
  keep filenum filepath;
run;


二维码

扫码加我 拉你入群

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

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

全部回复
2025-5-22 17:59:25
将filename做成一系列宏变量,宏程序里进行循环,%do ii=1 %to &max;
二维码

扫码加我 拉你入群

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

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

2025-6-12 13:35:10
fp是filepath,dn是output出的sas数据集名称。
二维码

扫码加我 拉你入群

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

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

2025-6-12 13:37:21
%let dirpath=d:\new;
filename temp pipe "dir ""&dirpath.\*.xlsx"" /b";
data a;
        infile temp truncover;
        input path $200.;
        fp="&dirpath.\"||strip(path);
        dn="i"||strip(_n_);
run;
data a;
        set a;
        call execute("proc import datafile='"||strip(fp)||"' out="||strip(dn)||" dbms=xlsx replace;getnames=NO;run;");
run;

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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