在过程表末尾添加总数

时间:2018-10-25 17:13:44

标签: sas frequency proc

我有一个带有行百分比的Proc制表输出,并且我希望每个汇总变量的所有受访者总数。我得到的最接近的结果是,它在每个变量的下方添加了一行用于计数,但是实际上,我只需要在末尾增加一列即可代表总数。

PROC TABULATE DATA = CHSS2017 f=10.2 S=[foreground=black just=c cellwidth=75]; 
CLASS EDUC
      AREA
      AGE 
      SEX 
      CENRACE 
      POVERTY 
      EDUC 
      INSURE 
      HEALTH
      Q21;

CLASSLEV EDUC     / style=[font_weight=medium background=colfmt.];
CLASSLEV AREA     / style=[font_weight=medium background=colfmt.];
CLASSLEV AGE      / style=[font_weight=medium background=colfmt.];
CLASSLEV SEX      / style=[font_weight=medium background=colfmt.];
CLASSLEV CENRACE  / style=[font_weight=medium background=colfmt.];
CLASSLEV POVERTY  / style=[font_weight=medium background=colfmt.];
CLASSLEV INSURE   / style=[font_weight=medium background=colfmt.];
CLASSLEV HEALTH   / style=[font_weight=medium background=colfmt.]; 
CLASSLEV Q21;

TABLE AREA    = 'Area in Region' * (ROWPCTN='   '*f=PCTF.)
      AGE     = 'Age'            * (ROWPCTN='   '*f=PCTF.)
      SEX                        * (ROWPCTN='   '*f=PCTF.)
      CENRACE = 'Race'           * (ROWPCTN='   '*f=PCTF.)
      POVERTY = 'Poverty Status' * (ROWPCTN='   '*f=PCTF.)
      EDUC                       * (ROWPCTN='   '*f=PCTF.)
      INSURE                     * (ROWPCTN='   '*f=PCTF.) 
      HEALTH                     * (ROWPCTN='   '*f=PCTF.), Q21 = ' ' ALL*f=8;
RUN;

我一直尝试在摘要变量(Area,Sex,Age)中添加“ * n”或“ * all”,但只会出错。我想要的输出应该看起来像图像,除了“ Count”列是总和而不是100或100%

Full table picture

data WORK.CLASS(label='Survey Data');
   infile datalines dsd truncover;
   input age:3. sex:3. cenrace:3. q21:3. regionwt:16.;
 datalines;
5 4 2 2 0.1214634338
5 3 2 2 1.1946976229
7 4 2 2 0.6734857715
7 4 2 2 2.5191297921
5 3 2 1 0.2390983852
 ;;;;

1 个答案:

答案 0 :(得分:0)

没有数据很难回答,但是尝试一下:

TABLE AREA    = 'Area in Region' * (ROWPCTN='   '*f=PCTF.)
      AGE     = 'Age'            * (ROWPCTN='   '*f=PCTF.)
      SEX                        * (ROWPCTN='   '*f=PCTF.)
      CENRACE = 'Race'           * (ROWPCTN='   '*f=PCTF.)
      POVERTY = 'Poverty Status' * (ROWPCTN='   '*f=PCTF.)
      EDUC                       * (ROWPCTN='   '*f=PCTF.)
      INSURE                     * (ROWPCTN='   '*f=PCTF.) 
      HEALTH                     * (ROWPCTN='   '*f=PCTF.)
      ALL                                                , Q21 = ' ';

编辑:重新阅读您的问题,我认为这就是您想要的。将N与ROWPCTN相加,但之后不加任何值。您可以根据需要添加格式。您可能还需要为每个对象执行此操作。

AREA    = 'Area in Region' * (ROWPCTN='   '*f=PCTF. N*f=8.)