2013-07-24 50 views
2

我正在编写一份proc tabulate报告,该报告将按天和按周汇总表中的数据。按SAS分组

到目前为止,这是我:

PROC TABULATE 
DATA=WORK.FB_REPORT 
    ; 
    VAR ORDERS UNITS PRICE SERVICE_CHARGE FRUIT_BOUQUET_REV REVENUE; 
    CLASS SALES_TYPE/ ORDER=UNFORMATTED MISSING; 
    CLASS ORDER_DATE/ ORDER=UNFORMATTED MISSING; 
    TABLE 
      /* By Row*/ 
      ORDER_DATE *( Sum={LABEL="Sum"} ) 
      all = 'Total' *( Sum={LABEL="Sum"} ) , /* CHANGE THIS LINE */ 
      /* By Column */ 
      SALES_TYPE *(ORDERS UNITS PRICE SERVICE_CHARGE MERHCREV REVENUE REVENUE) 
      all = 'Total' *(MERCHREV REVENUE REVENUE) ; 
    ; 

RUN; 

我怎样才能改变all = 'Total'*(Sum={LABEL="Sum"})声明使得通过分组周ORDER_DATE总结?

+0

最直接的方法似乎是:创建一个包含星期的变量并将其用于报告。我很好奇是否有人会演示一个有趣的功能,可以在没有附加数据步骤的情况下优雅地解决它。 – mvherweg

回答

1

您可以使用一种格式来完成此操作。有几种与周有关的格式,如果没有你喜欢的格式,你可以使用图片格式推出自己的格式。下面是一个使用总是受欢迎WEEKU格式的例子:

proc tabulate data=sashelp.citiday; 
class date; 
var SNYDJCM SNYSECM; 
format date WEEKU11.; 
tables all date,(snydjcm snysecm)*sum; 
run; 

日期是包含日期,每天一列,为数据集的整个周期内变化。 (浏览sashelp.citiday了解更多信息。)