我必须以每行两个表,多行的格式导出一些数据。到目前为止,我已经建立了一个报表,其中多个表彼此堆叠,但是通过在代码语句中使用多个proc report
语句,每行只有一个:
proc report data = mydata; title 'My Title:'; run;
proc report data = mydata; title 'My Title:'; run;
proc report data = mydata; title 'My Title:'; run;
我需要添加/修改哪些内容才能在报告中每行获得两个表?
谢谢
答案 0 :(得分:2)
某些目的地直接在ODS
语句中支持此操作;像ODS PDF
。
ods pdf file="test.pdf" columns=2 ;
proc print data=sashelp.class;
run;
proc freq data=sashelp.class;
tables age;
run;
ods pdf close;
但是,HTML没有。对于那些您想使用ODS LAYOUT
的人。
ods html file="test.html";
ods layout gridded
columns=2;
ods region;
proc print data=sashelp.class;
run;
ods region;
proc freq data=sashelp.class;
tables age;
run;
ods layout end;
ods html close;
有关更多详细信息,请参见ODS Layout Tip Sheet。
不幸的是,ODS LAYOUT无法与ODS EXCEL一起使用。如果愿意,您可以使用this macro做类似的事情,或者也许使用PROC DOCUMENT
将表放在一起,但是我不确定那是如何工作的。
如果每列中要有一个以上的表,则每个表可以有一个ODS REGION
(它们最终会被交替使用lrlr),或者可以在两个{{1}中添加更多},如果您不需要将它们正确网格化。
IE:
ODS REGION
那些只有两列,每列有2个表,但是它们没有对齐。
ods html file="test.html";
ods layout gridded
columns=2;
ods region;
proc print data=sashelp.class;
run;
ods region;
proc freq data=sashelp.class;
tables age;
run;
ods layout end;
ods html close;
这具有正确的网格布局。
答案 1 :(得分:0)
我最终通过调整以上内容解决了这个问题:
ods layout gridded columns=2 rows=2;
ods region;
proc print data=sashelp.class;
run;
ods region;
proc freq data=sashelp.class;
tables age;
run;
ods region;
proc print data=sashelp.cars;
run;
ods region;
proc freq data=sashelp.cars;
tables origin;
run;
ods layout end;
显然,行和列会根据您的需求而变化。生成SAS报告,然后将其作为项目中的步骤导出为HTML文件。
谢谢