SAS制表问题

时间:2016-12-18 23:09:26

标签: sas

我需要生成一个报告并在SAS中使用PROC Tabulate。我使用的代码生成包含Sub_LOB,Group和Mat_Month以及总计列的报告。在Mat_Month中有三个子列(12月16日,1月17日和2月17日)。我编写了代码,但 按顺序生成列,如12月16日,2月17日和1月17日) 这不是我想要的。此外,我需要一个名为“CAROLINA GROUP”的组的空行,但完整的行会消失,因为该行中现在有数据。有没有什么方法可以按照我想要的方式生成子列。此外,虽然它现在没有值但是可以在将来拥有值,是否可以获取该行。我使用的代码如下:

PROC Tabulate 
DATA= T_Final_Summary Format=Comma12. ;
VAR Comm Net_Bal;
Class Mat_Month / ORDER=Unformatted MISSING;
Class Sub_LOB /ORDER=Unformatted MISSING;
Class Group /ORDER= Unformatted MISSING;
TABLE /*Row Dimension*/
Sub_LOB={LABEL= “ “} * 
(Group={LABEL=” “} 
ALL={LABEL=”Grand Total”})
ALL={LABEL=”Grand Total},

/*Column Dimension*/

Mat_Month *(
Comm={LABEL=”Count of Comm} *N={LABEL=” “}
Comm={LABEL=”Sum of Comm} *Sum={LABEL=” “}
Net_Bal={LABEL=”Count of Net Bal”}*N={LABEL=” “}
Net_Bal ={LABEL=”Sum of Net Bal”}*Sum={LABEL=”Sum of Net Bal”})
ALL={LABEL=”Grand Total}*(
Comm={LABEL=”Total Count of Comm} *N={LABEL=” “}
Comm={LABEL=”Total Sum of Comm} *Sum={LABEL=” “}
Net_Bal={LABEL=”Total Count of Net Bal”}*N={LABEL=” “}
Net_Bal ={LABEL=”Total Sum of Net Bal”}*Sum={LABEL=”Sum of Net Bal”})
/*Table Options*/
/BOX=(LABEL=”Sub Lob/Group”} Missing =”0”;
RUN;

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

关于变量的顺序,它按字母顺序排序。 MAT_MONTH中的变量需要是一个实际的SAS日期才能对其进行相应的排序,这意味着数字具有日期格式(MONYY5)。您需要在PROC TABULATE步骤之前进行转换。

然后用proc_month_date变量替换proc表格中的mat_month。

OR