SAS-Proc报告-Don';是否在小计行中汇总列?
我正在尝试使用proc报告来完成以下任务,但我不知道如何做到这一点 我让proc report基本上创建了一个电子表格,看起来像这样,按ACCT和SEQ分组:SAS-Proc报告-Don';是否在小计行中汇总列?,sas,summarization,proc-report,Sas,Summarization,Proc Report,我正在尝试使用proc报告来完成以下任务,但我不知道如何做到这一点 我让proc report基本上创建了一个电子表格,看起来像这样,按ACCT和SEQ分组: ACCT SEQ FMTHS WCP 1234 1 5 1,000 8 1,000 4 1,000 -------------------------------- 1234 1
ACCT SEQ FMTHS WCP
1234 1 5 1,000
8 1,000
4 1,000
--------------------------------
1234 1 17
但是,客户端希望WCP列的值显示在小计行中,而不是汇总。虽然WCP显示3000以上是有意义的,但他们希望看到1000。所以基本上我需要这样结束:
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;
这是可行的,您只需在PROC报告之前将FMTHS复制到一个新变量中,在本例中
FMTHS2=FMTHS代码>在column语句中使用别名可以获得相同的结果
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 ;
proc report data=mydata;
列帐户
序号
FMTHS
FMTHS2
WCP
;
定义科目/组;
定义序列/组;
定义WCP/分析平均值;
定义FMTHS/订单=数据组noprint;
定义FMTHS2/分析总和;
顺序/总结后中断;
跑
我不确定在PROC REPORT
中,如果不进行激烈的讨论,这是不可能的。如果是这样的话,我当然很想看看。嗯,我差不多完成了这个。这可能不是最好的解决方案,但它现在必须起作用……请参见我上面的更改。您可以在proc report
中复制变量:column ACCT SEQ FMTHS FMTHS=FMTHS2 WCP代码>