SAS:为什么ODS LISTING CLOSE会阻止图表导出?

时间:2016-10-20 00:48:09

标签: sas

我在Windows上运行SAS 9.4。

如果我提交

/*ods listing close;*/

filename grafout "C:\output\sastest.png"; 
goptions reset=goptions device=png gsfname=grafout;

proc gchart data=sashelp.class;
   where sex="F";
   vbar age / sumvar=weight type=mean subgroup=age 
              nolegend discrete;
run; 
quit; 

文件sastest.png将导出到C:\output文件夹。但是,如果我在代码顶部放置ods listing close;语句,则不再导出图表。

显然,listing目的地超过

  

生成传统SAS输出的ODS目的地(等宽航空   格式)。

更令人困惑的是,默认情况下关闭列表:

  

默认情况下,从SAS 9.3开始,在Windowing环境中使用   在Windows和UNIX操作系统中,LISTING目的地是   已关闭且HTML目标已打开。

为什么ods listing close;语句会阻止图表导出?

1 个答案:

答案 0 :(得分:1)

原因是ods listing目的地是导致您的图表通过gsfname导出的原因。我怀疑你会发现它确实在你运行代码并注释掉它之前(如果它确实保存了文件)。

ODS HTML使用不同的方法来定义应该导出图形的位置而不是goptions;它使用gpath=来定义文件的路径,并使用图上的name选项来定义文件的名称。实际上它是#34;出口"每次运行此文件时 - 只是不到有用的位置(请参阅日志;它使用默认gpath,可能是临时位置,默认文件名,proc的名称)。

ods listing close;
ods html gpath="c:\temp" ;
proc gchart data=sashelp.class;
   where sex="F";
   vbar age / sumvar=weight type=mean subgroup=age 
              nolegend discrete name="sastest";
run; 
quit; 

默认情况下,您的商家信息目标可能已关闭,具体取决于管理员定义的系统设置和/或会话期间更改的其他选项。

有关指定如何在不同目的地保存SAS / GRAPH文件的详细信息,请参阅Controlling Where Your Output Is Stored