列出SAS步骤创建的所有输出

列出SAS步骤创建的所有输出,sas,Sas,有没有办法获得SAS中一个步骤(迭代)创建的所有输出(数据集/文件)的列表? 我尝试使用自动变量,但我能得到的只是最后使用&syslast和&sysdsn变量创建的数据集。但是如果一个数据步骤创建了多个数据集呢?如何在SAS中自动获取他们的姓名/详细信息而不使用任何列表等关键字?有可能吗? 请建议! 谢谢大家! 我认为这是不可能的。我能想到的唯一方法是在数据步骤/迭代之后解析日志 为此,您可以使用以下方法: /* set up a fresh log prior to your iteratio

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

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

为此,您可以使用以下方法:

/* 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;

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

为此,您可以使用以下方法:

/* 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;

PROC SCAPROC将在日志中报告此情况,并警告您必须先运行流程,然后才能获得输出。

PROC SCAPROC将在日志中报告此情况,警告您必须先运行流程,然后才能获得输出。

谢谢Allan,我也在考虑同样的问题,我正在尝试编写一个宏,它可能有助于使用systask提交另一个任务,可以跟踪日志并生成所需的输出。感谢Allan,我也在考虑同样的问题,我正在尝试编写一个宏,它可能有助于使用systask提交另一个任务,这可以在某种程度上跟踪日志并生成所需的输出。我假设输出比常规日志(至少)更容易解析-查找关键字数据集输出。我假设输出比常规日志(至少)更容易解析-查找关键字数据集输出。