【问题标题】:sas import latest csv file in foldersas 在文件夹中导入最新的 csv 文件
【发布时间】:2013-08-14 14:51:38
【问题描述】:

我有一个文件夹,其中每天添加一个文件,如下所示

Z:\old\stock110813.csv Z:\旧\stock120813.csv Z:\旧\stock130813.csv Z:\old\stock140813.csv

  1. 我想将最新的文件动态导入到 SAS 中,即。在文件夹中搜索最新日期
  2. 或希望 sas 制作最新的副本并更改文件的名称和位置

我已经在网上搜索了几天来测试少量代码,但我很苦恼,因此我们将不胜感激。

干杯约翰

【问题讨论】:

    标签: csv import sas getlatest


    【解决方案1】:

    如果日期是可预测的(即今天的日期),那么您可以这样做:

    %let date=%sysfunc(today,dateformat.); *whatever dateformat you need;
    proc import file="z:\old\stock&date..csv"... ;
    run;
    

    如果没有,那么最好的办法是使用带有目录列表的管道来查看最新的文件名。像这样的东西(目录逻辑取决于你的服务器/操作系统/等)

    filename mydir pipe 'dir /b /od /a-d z:\old\';
    
    data myfiles;
    infile mydir;
    input @1 filename $32.;
    call symput('filename',filename);
    run;
    
    proc import file="z:\old\&filename." ... ;
    

    【讨论】:

      【解决方案2】:

      您想使用系统日期还是文件名中的日期来确定最新的文件是什么?如果您想使用创建修改日期,请查看 foptname 函数来确定它们。此代码查看文件名中的日期。此代码无需 X 命令授权即可工作。

      data newestFile (keep=newestFile);
       format newestFile $20.;
       retain newestFile newestDate;
       rc = filename("dir","z:\old\");
       did = dopen("dir");
       /* loop through file and subdirectories in a directory */
       do i = 1 to dnum(did); 
        csvFile = dread(did,i);   
        rc=filename("fid",cats("z:\old\",csvFile));
        sdid=dopen("fid");
        /*check if date in name is newest if it is a file  */
        if sdid le 0 then do;
         csvFileDate = input(substr(csvFile,6,6),ddmmyy6.);
         if csvFileDate gt newestDate then do;
          newestDate = csvFileDate;
          newestFile = csvFile;
         end;
        end;
       else rc = dclose(sdid);
       end;
       rc = dclose(did);
       /* move and rename file with latest date to newestFile.csv */
       rc = rename(cats("z:\old\",newestFile), "z:\new\newestFile.csv",'file');
      run;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-19
        • 2021-11-19
        • 2020-06-18
        • 2015-02-22
        • 2016-01-13
        相关资源
        最近更新 更多