SAS proc表格输出列总计

SAS proc表格输出列总计,sas,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=[cel

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

这是我的密码

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 tablate
的输出,它显示了每天的理想指数

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

使用dtdate9将日期时间格式化为date9。您可能需要多个类语句,因为这不是预加载格式。在末尾添加另一个“全部”作为总计

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;

为什么
dtdate9.
不是
date9.
?我可以把理想的索引输出附加到cites输出的右边吗?dtdate9用于日期时间,date9用于日期变量。如果要使用date9,则必须在不同的数据步骤中将其转换为日期变量。您可以尝试通过简单地在结束后将其添加到table语句来追加它。没有代码有点难说。是否将其添加到上一个table语句中?但是它来自另一个数据集。我添加了
all='grandtotal
,但它返回的是
N
而不是summation如果它来自另一个数据集,那么不,你不能。您必须提前准备数据,根据需要合并或追加数据。