SAS- Supress Results查看部分(但不是全部)proc打印输出

时间:2015-04-23 22:25:29

标签: sas sas-ods

我希望能够将所有报告打印到外部文件,但只在结果查看器中显示少数几个。在下面的示例中,我希望reportA和reportB显示并打印(file.xls),但reportC打印到单独的文件(file2.csv),而不显示在结果查看器中。有什么想法吗?

ods msoffice2k file="/file/file.xls";
proc print data=reportA;
run;
proc print data=reportB
run;
ods msoffice2k close;
ods csvall file="/file/file2.csv";
proc print data=reportC;
run;
ods csvall close;

3 个答案:

答案 0 :(得分:1)

您还可以使用ODS EXCLUDEODS SELECT定位特定目的地。

例如,ods html select none;会暂时关闭HTML目标,但实际上并未将其关闭 - 它只是暂时无法获得任何结果。然后,您可以使用ods html select all;将其重新打开。

您也可以使用ods html exclude all;执行相同的操作,然后使用ods html exclude none;将其重新打开。

使用任一语句,您还可以在ods select / exclude中使用where语句进行过滤,以仅影响输出的某个特定部分。有关详细信息,请参阅documentation

答案 1 :(得分:0)

关闭默认的列表输出。或HTML,如果这是您系统中的默认结果窗口。创建文件后重新打开输出。

ods msoffice2k file="/file/file.xls";
proc print data=reportA;
run;
proc print data=reportB
run;
ods msoffice2k close;
ods listing close;
ods html close;
ods csvall file="/file/file2.csv";
proc print data=reportC;
run;
ods csvall close;
ods listing;
ods html;

答案 2 :(得分:0)

我实际上通过使用proc export功能来抑制csv输出的显示,找到了更好的解决方案。

ods msoffice2k file="/file/file.xls";
proc print data=reportA;
run;
proc print data=reportB
run;
ods msoffice2k close;

proc export data=reportC
outfile="/file/file2.csv"
dbms=dlm
replace;
delimiter=",";
run;

感谢@Reeza的帮助,我会在未来的项目中牢记这些设置。