SAS proc表格输出列总数

时间:2014-11-20 09:50:48

标签: sas

我有几个城市的两个索引,我想输出摘要。

这是我的代码

proc tabulate data=HAVE missing;
class Date City/order=data preloadfmt;
format City $Areaformat.;
var Index1 Index2;
table (Date=''),
      (Index1={Label="AAA" s=[cellwidth=2in just=c]}*(sum='') Index2={Label="BBB" s=[cellwidth=2in 
      just=c]}*(sum='')) * (City='' all=Total);
run;

这是示例输出。

                                  Index1                            Index2
                   City1    City2    City3    Total    City1     City2    City3    Total
01Nov2014            1        2        1        4        1         1        1        3  
02Nov2014            2        2        1        5        2         1        2        5  

但我需要像

这样的东西
                                  Index1                            Index2                   Index Total
                   City1    City2    City3    Total    City1     City2    City3    Total     Grand Total
01Nov2014            1        2        1        4        1         1        1        3          7
02Nov2014            2        2        1        5        2         1        2        5          10 

另外,我有proc tabulate的另一个输出,它显示了每天的理想指数。

proc tabulate data=Ideal missing;
class Date;
var Index1 Index2;
table (Date=''), 
      (Index1={Label="Ideal Index1"}*(sum='Total') Win={Index2="Ideal Index2"}*(sum='Total'));
run;

这是另一个输出。

                  Ideal1        Ideal2
                   Total         Total
01Nov2014            4            3  
02Nov2014            5            5  

有没有办法将理想索引表附加到上面所需输出的右侧(更容易进行比较而不是将它们分成两个输出表)?最后是这样的

                      Index1                      Index2           Index Total  Ideal1  Ideal2  Ideal Total  Diff           
           City1  City2  City3  Total  City1  City2  City3  Total  Grand Total   Total  Total    Total     
01Nov2014   1      2      1       4      1      1      1      3         7          4      3       7            0
02Nov2014   2      2      1       5      2      1      2      5         10         5      5       10           0

1 个答案:

答案 0 :(得分:1)

使用dtdate9将日期时间格式化为date9。您可能需要多个类语句,因为它不会成为预加载格式。最后为Grand Total添加另一个。

proc tabulate data=HAVE missing;
class City/order=data preloadfmt;
class Date/order=data;
format City $Areaformat.;
format date dtdate9.;
var Index1 Index2;
table (Date=''),
      (Index1={Label="AAA" s=[cellwidth=2in just=c]}*(sum='') Index2={Label="BBB" s=[cellwidth=2in 
      just=c]}*(sum='')) * (City='' all=Total) all='Grand Total';
run;