防止SAS EG输出datastep中的每个数据集

时间:2017-01-30 18:07:45

标签: sas enterprise-guide

我是SAS EG的新手,当我真正需要这个程序时,我通常会使用BASE SAS,但我的公司正在大力推行EG。我帮助某些区域使用一些代码在临时基础上获取所需的数据(但代码不会改变)。

但是,在处理过程中,我们会创建许多临时文件,这些文件只是几个月的迭代。 I.E.如果用户想要2002年至2016年的数据,我们必须提取所有这些库,然后将它们与我们的结果连接起来。这是由于高交易量,最终数据集仅限于少量观察。每当我运行这个程序时,SAS会输出宏中创建的所有183个数据包,使其变得非常难看,有时输出数据"输出数据"看起来甚至不是从最后一个datastep输出,而是从中间步骤输出,这使得搜索“最终输出数据集”变得很烦人。

有没有办法限制写入"输出数据"的数据集?所以它只显示最终的数据集 - 所以我们的最终用户不必担心被混淆?

enter image description here

上面是一个例子 - 有很多输出数据集我都不在乎。我只想要在该列表中找到(位于某个地方)的决赛...

版本是SAS E.G. 7.1

2 个答案:

答案 0 :(得分:2)

EG将始终自动显示程序结束后创建的每个数据集。如果您不希望它显示任何中间表,请在流程的最后一步删除它们。

在您的情况下,看起来您的临时表都共享名称TRN。你可以这样清理它:

/* Start of process flow */

<program statements>;

/* End of process flow*/

proc datasets lib=work nolist nowarn nodetails;
    delete TRN:;
quit;

如果这样做,请小心。确保所有临时表都遵循相同的前缀命名方案,否则您可能会意外删除所需的表。

另一种解决方案是限制生成的数据集的数量,并具有用户创建的最终数据集链接。有一个article about it here.

答案 1 :(得分:0)

此处的替代解决方案是将输出数据集显式添加为流程流中的条目,并忽略OUTPUT窗口,除非您需要调查中间数据集中的内容。

这样做的好处是,如果出现问题,它可以让您查看中间数据集,但也可以让您不必浏览所有数据集以查看最终数据集。

您应该能够轻松地创建一次最终输出数据集到流程流中,然后在那之后,您可以选择查看它。