SAS - Proc报告 - 不要在小计行中汇总列?

时间:2014-03-04 18:10:45

标签: sas summarization proc-report

我正在尝试使用proc报告完成以下操作,但我不知道该怎么做。

我有proc报告基本上创建一个看起来像这样的电子表格,按ACCT和SEQ:

分组
ACCT    SEQ     FMTHS     WCP
1234     1        5       1,000
                  8       1,000
                  4       1,000
--------------------------------
1234     1       17  

但是,客户希望WCP列的值显示在小计行中,而不是汇总。虽然WCP显示3000以上是有意义的,但他们希望看到1,000。所以基本上我需要最终得到这个:

ACCT    SEQ     FMTHS     WCP
1234     1        5       1,000
                  8       1,000
                  4       1,000
--------------------------------
1234     1       17       1,000

到目前为止,这是我的代码:

proc report data = test missing nowindows;
        columns acct
                seq
                fmths
                wcp
                ;

    define acct /   group
                style(header)={font=('calibri',10pt,bold) just=c}
                style(column)={font=('calibri',10pt) just=c cellwidth=1.0in}; 
    define seq /    group 
                style(header)={font=('calibri',10pt,bold) just=c}
                style(column)={font=('calibri',10pt) just=c cellwidth=1.0in}; 
    define fmths /  analysis
                style(header)={font=('calibri',10pt,bold) just=c}
                style(column)={font=('calibri',10pt) just=c cellwidth=1.0in}; 
    define wcp /    display  format=dollar12.
                style(header)={font=('calibri',10pt,bold) just=c}
                style(column)={font=('calibri',10pt) just=c cellwidth=1.0in}; 
    title; 

  break after seq/ summarize ;
  compute after seq;
  line @1 ' ';
  endcomp;

run;

更新:这种解决问题...

proc report data = test missing nowindows;
        columns acct
                seq
                fmths
                wcp
                ;

    define acct /   group
                style(header)={font=('calibri',10pt,bold) just=c}
                style(column)={font=('calibri',10pt) just=c cellwidth=1.0in}; 
    define seq /    group 
                style(header)={font=('calibri',10pt,bold) just=c}
                style(column)={font=('calibri',10pt) just=c cellwidth=1.0in}; 
    define fmths /  analysis
                style(header)={font=('calibri',10pt,bold) just=c}
                style(column)={font=('calibri',10pt) just=c cellwidth=1.0in}; 
    define wcp /    group  format=dollar12.
                style(header)={font=('calibri',10pt,bold) just=c}
                style(column)={font=('calibri',10pt) just=c cellwidth=1.0in}; 
    title; 

  break after wcp/ summarize ;
  compute after wcp;
  line @1 ' ';
  endcomp;

run;

1 个答案:

答案 0 :(得分:0)

这很有效,您只需要在PROC REPORT之前将FMTHS复制到一个新变量中,在本例中FMTHS2 = FMTHS ;您可以使用列语句中的别名来实现相同的结果。

proc report data=mydata ;
  column ACCT
         SEQ
         FMTHS
         FMTHS2
         WCP
         ;
  define ACCT   / group ;
  define SEQ    / group ;
  define WCP    / analysis mean ;
  define FMTHS  / order order=data group noprint ;
  define FMTHS2 / analysis sum ;

  break after SEQ / summarize ;
run ;