SAS / STAT 12.1:PROC TABULATE中的KEYLABEL:需要" all"的总行和列总行数。显示不同的标签

时间:2014-05-07 17:57:28

标签: label sas

我在SAS / STAT 12.1中工作,下面我的代码只有一个问题,我需要在底行显示“Total”(显示列总和和百分比),而不是“Both Genders”。是的,右上方的列标题(显示行总数和百分比)仍然需要是“两性”。

我希望有一个简单的方法可以使用keylabel来做到这一点,但到目前为止还没有想到它。

proc tabulate data=dmhrind format=8.1;  
format gender $gendfmt. ethnic $ethnic.;
class ethnic gender;
table (ethnic all)*f=4. , (gender all)*(n*f=4. colpctn*f=5.1 rowpctn*f=5.1) ;
title 'Ethnic Distribution by Gender';
label ethnic='Race/Ethnicity';
keylabel N='N' colpctn='%' all='Both Genders' reppctn='%' rowpctn = 'Total';
run;

提前感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:0)

我能看到的唯一方法就是创建一个模拟All的虚拟列。使用sashelp.class:

data class;
set sashelp.class;
allage = 'All Ages';
run;

proc tabulate data=class format=8.1;  
class sex age allage;
table (age allage=' ')*f=4. , (sex all)*(n*f=4. colpctn*f=5.1 rowpctn*f=5.1) ;
title 'age Distribution by sex';
label age='Age';
label allage='All Ages';
keylabel N='N' colpctn='%' all='Both Sexes' reppctn='%' rowpctn = 'Total';
run;

它需要将您想要的文本作为标签作为其实际值,并且您需要将表格中的all替换为该变量(并将其添加到类语句中),并添加{{1覆盖额外的标签子行。

答案 1 :(得分:0)

为此,您需要在table语句中进行标题。以下示例与您的示例相似,使用sashelp.class(如在@ Joe'示例中),其中age用作ethnicity变量: -

**  This option helps improve proc tabulate output on some systems;
options formchar="|----||---|-/\<>*";

**  The key is adding the column titles directly in the table stmt;
proc tabulate data=sashelp.class format=8.1;  
  class sex age;
  table (age all='Total')*f=4. , (sex='' all='Both Sexes')*(n='N'*f=4. colpctn='Col %'*f=5.1 rowpctn='Row %'*f=5.1) ;
run;

输出应如下所示: -

      ---------------------------------------------------------------------------
       |                      |       F        |       M        |   Both Sexes   |
       |                      |----------------|----------------|-----------------
       |                      | N  |Col %|Row %| N  |Col %|Row %| N  |Col %|Row %|
       |----------------------|----|-----|-----|----|-----|-----|----|-----|------
       |Age                   |    |     |     |    |     |     |    |     |     |
       |-----------------------    |     |     |    |     |     |    |     |     |
       |11                    |   1| 11.1| 50.0|   1| 10.0| 50.0|   2| 10.5|100.0|
       |----------------------|----|-----|-----|----|-----|-----|----|-----|------
       |12                    |   2| 22.2| 40.0|   3| 30.0| 60.0|   5| 26.3|100.0|
       |----------------------|----|-----|-----|----|-----|-----|----|-----|------
       |13                    |   2| 22.2| 66.7|   1| 10.0| 33.3|   3| 15.8|100.0|
       |----------------------|----|-----|-----|----|-----|-----|----|-----|------
       |14                    |   2| 22.2| 50.0|   2| 20.0| 50.0|   4| 21.1|100.0|
       |----------------------|----|-----|-----|----|-----|-----|----|-----|------
       |15                    |   2| 22.2| 50.0|   2| 20.0| 50.0|   4| 21.1|100.0|
       |----------------------|----|-----|-----|----|-----|-----|----|-----|------
       |16                    |   .|    .|    .|   1| 10.0|100.0|   1|  5.3|100.0|
       |----------------------|----|-----|-----|----|-----|-----|----|-----|------
       |Total                 |   9|100.0| 47.4|  10|100.0| 52.6|  19|100.0|100.0|
       --------------------------------------------------------------------------|