列出SAS步骤创建的所有输出
有没有办法获得SAS中一个步骤(迭代)创建的所有输出(数据集/文件)的列表? 我尝试使用自动变量,但我能得到的只是最后使用&syslast和&sysdsn变量创建的数据集。但是如果一个数据步骤创建了多个数据集呢?如何在SAS中自动获取他们的姓名/详细信息而不使用任何列表等关键字?有可能吗? 请建议!列出SAS步骤创建的所有输出,sas,Sas,有没有办法获得SAS中一个步骤(迭代)创建的所有输出(数据集/文件)的列表? 我尝试使用自动变量,但我能得到的只是最后使用&syslast和&sysdsn变量创建的数据集。但是如果一个数据步骤创建了多个数据集呢?如何在SAS中自动获取他们的姓名/详细信息而不使用任何列表等关键字?有可能吗? 请建议! 谢谢大家! 我认为这是不可能的。我能想到的唯一方法是在数据步骤/迭代之后解析日志 为此,您可以使用以下方法: /* set up a fresh log prior to your iteratio
谢谢大家! 我认为这是不可能的。我能想到的唯一方法是在数据步骤/迭代之后解析日志 为此,您可以使用以下方法:
/* 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提交另一个任务,这可以在某种程度上跟踪日志并生成所需的输出。我假设输出比常规日志(至少)更容易解析-查找关键字数据集输出。我假设输出比常规日志(至少)更容易解析-查找关键字数据集输出。