SAS Proc 报告的多层行

问题描述 投票:0回答:1

有没有办法在 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>
sas report rtf proc
1个回答
0
投票

您可以使用

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;

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.