【问题标题】:List all the output created by a SAS step列出由 SAS 步骤创建的所有输出
【发布时间】:2017-08-29 05:20:46
【问题描述】:

有没有办法获取由 SAS 中的步骤(迭代)创建的所有输出(数据集/文件)的列表? 我尝试使用自动变量,但我能得到的只是最后一个使用 &syslast 和 &sysdsn 变量创建的数据集。但是如果一个数据步骤创建了多个数据集呢?如何在不使用任何列表等关键字的情况下在 SAS 中自动获取他们的名称/详细信息?有没有可能的方法? 请建议! 谢谢!

【问题讨论】:

    标签: sas


    【解决方案1】:

    我不相信这是可能的。我能想到的唯一方法是在您的数据步骤/迭代之后解析日志。

    为此,您可以使用以下内容:

    /* set up a fresh log prior to your iteration */
    %let logloc=%sysfunc(pathname(work))/mylog.txt;
    proc printto log="&logloc" new;
    run;
    
    /* run your iteration */
    data mystep with lots of output datasets;
      set something;
    run;
    
    /* return to normal logging */
    proc printto log=log; 
    run;
    
    data _null_;
      infile "&logloc";
      input;
      if _infile_=:'data' then do;
        /* perform log scanning */
        /* will likely need some complex logic to be robust!*/
      end;
    run;
    

    【讨论】:

    • 谢谢艾伦,我也在考虑同样的问题,我正在尝试编写一个宏,它可能有助于使用 systask 提交另一个任务,它可以跟踪日志并生成所需的输出.
    【解决方案2】:

    PROC SCAPROC 将在日志中报告这一点,但需要注意的是您必须先运行该过程,然后才能获得输出。

    【讨论】:

    • 我认为输出至少比常规日志更容易解析 - 查找关键字 DATASET OUTPUT。
    猜你喜欢
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    相关资源
    最近更新 更多