【发布时间】:2017-08-29 05:20:46
【问题描述】:
有没有办法获取由 SAS 中的步骤(迭代)创建的所有输出(数据集/文件)的列表? 我尝试使用自动变量,但我能得到的只是最后一个使用 &syslast 和 &sysdsn 变量创建的数据集。但是如果一个数据步骤创建了多个数据集呢?如何在不使用任何列表等关键字的情况下在 SAS 中自动获取他们的名称/详细信息?有没有可能的方法? 请建议! 谢谢!
【问题讨论】:
标签: sas
有没有办法获取由 SAS 中的步骤(迭代)创建的所有输出(数据集/文件)的列表? 我尝试使用自动变量,但我能得到的只是最后一个使用 &syslast 和 &sysdsn 变量创建的数据集。但是如果一个数据步骤创建了多个数据集呢?如何在不使用任何列表等关键字的情况下在 SAS 中自动获取他们的名称/详细信息?有没有可能的方法? 请建议! 谢谢!
【问题讨论】:
标签: 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;
【讨论】:
PROC SCAPROC 将在日志中报告这一点,但需要注意的是您必须先运行该过程,然后才能获得输出。
【讨论】: