当输出数字到磁盘时,我想抑制SAS中的所有输出以强制用户(我)查看创建的实际文件。为此,我设置了以下选项。
ods listing;
ods noresults;
goptions
reset = all
rotate = landscape
xpixels = 1294
ypixels = 800
device = png
gsfname = outPlot
gsfmode = replace
;
我的情节调用程序可能看起来像:
filename outPlot 'C:\Users\...\My Output Directory\Figure.png';
proc gplot data = plot_data;
plot y_value * x_value = symbol /
haxis = axis1
vaxis = axis2
legend = legend1
;
run;
quit;
filename outPlot clear;
据我了解,这会将列表重定向到我想要的输出目录。但是,在我的日志中,我看到类似的东西:
NOTE: 51820 bytes written to C:\Users\...\Temp\1\SAS Temporary Files\_TD6828_2UA3331QB3_\gplot6.png.
NOTE: 51832 bytes written to C:\Users\...\My Output Directory\Figure.png.
这表示该图首先写入临时文件夹中的磁盘,然后写入我想要的目录。
我正在寻求加快剧情创作,并怀疑对临时目录的额外写入会减慢速度。
有没有办法只写我选择的目录?
答案 0 :(得分:4)
您最有可能打开多个ODS目的地。默认情况下,我认为Enterprise Guide和Base SAS Editor都会打开HTML目标。如果您打开列表目的地,那么可能会占第二个输出。
要找出哪些ODS目的地已打开,您可以查看dictionary.destinations
(或等效sashelp.vdest
)。见support.sas.com/kb/33/590.html。
您也可以使用:
proc sql noprint;
select destination into :openDestinations separated by ', '
from dictionary.destinations ;
quit;
%put &=openDestinations;
另一个选择是关闭所有打开的目的地,然后只打开你想要的目的地:
ods _all_ close;
ods listing;