我有一个 SAS 代码,它为我的计算创建了很多中间表。问题是,我真的不关心工作完成后的这张桌子,我只关心决赛的结果。
但是,每次我运行这段代码时,SAS 添加所有生成的表来完成我的流程,把它变成一个巨大的混乱(我在这里说的是 40 多个中间表)。
有没有办法告诉 SAS 不要在流程中添加一些表?或者至少告诉它根本不要添加任何表格?我正在使用 SAS Enterprise Guide 4.1
提前致谢
我有一个 SAS 代码,它为我的计算创建了很多中间表。问题是,我真的不关心工作完成后的这张桌子,我只关心决赛的结果。
但是,每次我运行这段代码时,SAS 添加所有生成的表来完成我的流程,把它变成一个巨大的混乱(我在这里说的是 40 多个中间表)。
有没有办法告诉 SAS 不要在流程中添加一些表?或者至少告诉它根本不要添加任何表格?我正在使用 SAS Enterprise Guide 4.1
提前致谢
在 SAS 9.1.x 和 9.2.x(适用于 Windows)下,可以通过在数据集名称前加上“_TO”前缀来禁止在 SAS 客户端环境中显示数据集。因此,在您的代码和/或任务中,您可以调用所有中间数据集_TO<DataSetName>
,它们不会弄乱您的流程。但是它们仍然会存在并且可以在代码和任务中被引用。
如果您这样做并且正在使用任务,请注意,如果您看不到要选择它的数据集,那么弄清楚如何将任务的输出数据用作另一个任务的输入可能会很棘手。如果您对此有疑问,请在此帖子上发表评论,我们可以解决。
请注意,这个“_TO”前缀是一个未记录的“隐藏”功能,将在 9.3 中弃用 - 有关详细信息,请参阅此博客。
如果将选项“要添加到项目的最大输出数据集数”(在常规结果下)设置为零,则不会将任何数据集添加到项目中,但仍可从服务器查看它们 ->库视图(它们将在您请求它们时添加到流中)。
我知道这个问题现在已经有一年半的时间了,但是如果您正在使用可以在获得最终结果后删除的中间表,SAS EG 有一个内置宏,您可以使用它来删除这些表:
%_eg_conditional_dropds([table1], [table2], ... ,[table-n]);