0

我必须以每行两个表的格式导出一些数据,多行。到目前为止,我已经构建了一个报表,其中多个表相互堆叠,但通过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;

我需要添加/修改什么,以便我的报告中每行有两个表格?

谢谢

4

2 回答 2

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 布局提示表

遗憾的是,ODS LAYOUT 不适用于 ODS EXCEL。如果您愿意,您可以使用此宏来执行类似的操作,或者可能用于PROC DOCUMENT将表格放在一起,但我不确定它究竟是如何工作的。

如果您希望每列中有多个表,那么您可以ODS REGION每个表有一个(它们最终会被交替 lrlr),或者ODS REGION如果您不需要它们被网格化,您可以在此处添加更多到两个 s适当地。

IE:

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;

那些只有两列,每列有 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 region;
proc print data=sashelp.cars;
run;

ods region;
proc freq data=sashelp.cars;
tables origin;
run;

ods layout end;
ods html close;

这有一个适当的网格布局。

于 2018-06-29T15:29:11.997 回答
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 文件。

谢谢

于 2018-06-29T20:53:37.070 回答