1

SAS EG

有什么方法可以使用 SAS ODS 打印用于获取输出的查询/语句以及输出?

认为,

ods pdf file=pdfile;
proc sql;
select a.*
from tab1 a inner join tab2 b
on a.something=b.something
where <>
having <>;
quit;
ods _all_ close;

这将打印从上述查询生成的OUTPUT 。但是我也可以通过 ods pdf 连同输出一起打印查询吗?

4

1 回答 1

1

我知道没有自动重定向日志的方法。

然而,有几种方法可以得到你想要的。

首先,如果您能够使用 Jupytr,SAS 有插件可以使其与 SAS 一起使用,然后您可以简单地在笔记本中编写并运行代码,结果会随您的代码一起显示。有关更多详细信息,请参阅Chris Hemedinger 关于该主题的博客文章。

其次,SAS Studio 可能会在明年年底发布的下一个主要版本(我相信是 5.0 版)中支持笔记本式界面。同样,您可以将代码放在同一个窗口中并获得输出。

最后,第三个选项是按照 Reeza 的建议进行 - 写入日志文件,然后将其打印到输出。这很混乱,但有可能。

这是后者的一个例子。我没有做任何清理工作,注意,您可能想要删除与 PROC PRINTTO 和 otehr 注释相关的日志记录(或打开 NONOTE)。

ods pdf file="c:\temp\test.pdf";
filename logfile temp;
proc printto log=logfile;
run;
proc sql;
select * from sashelp.class;
quit;
proc printto;
run;
data _null_;
  infile logfile;
  input @1 @;
  call execute(cats('ods text="',trim(_infile_),'";'));
run;

ods _all_ close;
于 2017-11-30T22:23:16.260 回答