SAS ODS Query/Statement 打印及其输出
SAS ODS Query/Statement print along with it's output
SAS EG
有什么方法可以使用 SAS ODS 打印用于获取输出的 query/statement 以及输出吗?
假设,
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 打印查询以及输出吗?
据我所知,没有自动重定向日志的方法。
不过,有几种方法可以获得您想要的东西。
首先,如果你可以使用 Jupytr,SAS 有插件可以让它与 SAS 一起工作,然后你可以简单地在笔记本中写下 运行 代码,结果显示为你的代码就像你想要的那样。有关详细信息,请参阅 Chris Hemedinger's blog post on the subject。
其次,SAS Studio 可能会在明年晚些时候发布的下一个主要修订版(我相信是 5.0 版)中支持笔记本式界面。所以类似地,你会把你的代码和输出放在同一个 windows.
最后,第三个选项是按照 Reeza 的建议执行 - 写入日志文件,然后将其打印到输出中。这很混乱但可能。
这是后者的一个例子。我没有做任何清理工作,请注意,您可能想要删除与 PROC PRINTTO 相关的日志记录和其他注释(或打开 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;
SAS EG
有什么方法可以使用 SAS ODS 打印用于获取输出的 query/statement 以及输出吗?
假设,
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 打印查询以及输出吗?
据我所知,没有自动重定向日志的方法。
不过,有几种方法可以获得您想要的东西。
首先,如果你可以使用 Jupytr,SAS 有插件可以让它与 SAS 一起工作,然后你可以简单地在笔记本中写下 运行 代码,结果显示为你的代码就像你想要的那样。有关详细信息,请参阅 Chris Hemedinger's blog post on the subject。
其次,SAS Studio 可能会在明年晚些时候发布的下一个主要修订版(我相信是 5.0 版)中支持笔记本式界面。所以类似地,你会把你的代码和输出放在同一个 windows.
最后,第三个选项是按照 Reeza 的建议执行 - 写入日志文件,然后将其打印到输出中。这很混乱但可能。
这是后者的一个例子。我没有做任何清理工作,请注意,您可能想要删除与 PROC PRINTTO 相关的日志记录和其他注释(或打开 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;