有没有办法在 SAS 中进行多层行设置? 我的 .rtf 输出中有太多列,溢出被放置在单独的表中。这就是想要的结果:
<b> ColumnA ColumnB ColumnC ColumnD</b>
<b> ColumnE ColumnF ColumnG ColumnH</b>
<b>Person 1 A1 B1 C1 D1</b>
<b> E1 F1 G1 H1</b>
<b>Person 2 A2 B2 C2 D2</b>
<b> E2 F2 G2 H2</b>
您可以使用
DATA _null_
和 ODSOUT
组件对象创建自定义输出。
文档和会议论文非常详细地涵盖了该主题。
示例:
data have;
input (ID A B C D E F G H) ($) ;
datalines ;
Caine A1 B1 C1 D1 E1 F1 G1 H1
Abel A2 B2 C2 D2 E2 F2 G2 H2
;
ods listing close;
ods html file='report.html';
title 'Custom table from DATA _NULL_ and ODSOUT Component Object' ;
data _null_ ;
set have end=end;
if _n_ = 1 then do ;
declare odsout oo() ;
oo.table_start() ;
oo.row_start(type:'h');
oo.cell_start(); oo.cell_end();
oo.cell_start(data:'A') ; oo.cell_end();
oo.cell_start(data:'B') ; oo.cell_end();
oo.cell_start(data:'C') ; oo.cell_end();
oo.cell_start(data:'D') ; oo.cell_end();
oo.row_end();
oo.row_start(type:'h');
oo.cell_start(); oo.cell_end();
oo.cell_start(data:'E') ; oo.cell_end();
oo.cell_start(data:'F') ; oo.cell_end();
oo.cell_start(data:'G') ; oo.cell_end();
oo.cell_start(data:'H') ; oo.cell_end();
oo.row_end();
end ;
oo.row_start(type:'d');
oo.cell_start(data:ID); oo.cell_end();
oo.cell_start(data:A) ; oo.cell_end();
oo.cell_start(data:B) ; oo.cell_end();
oo.cell_start(data:C) ; oo.cell_end();
oo.cell_start(data:D) ; oo.cell_end();
oo.row_end();
oo.row_start(type:'d');
oo.cell_start(); oo.cell_end();
oo.cell_start(data:E) ; oo.cell_end();
oo.cell_start(data:F) ; oo.cell_end();
oo.cell_start(data:G) ; oo.cell_end();
oo.cell_start(data:H) ; oo.cell_end();
oo.row_end();
if end then oo.table_end() ;
run ;
ods html close;