Proc制表rowpctn单独的列百分比

时间:2019-06-27 15:04:24

标签: sas

我是SAS新手,请尝试进一步了解Proc Tabulate。

proc tabulate data=stem_camp1;
class gender pass SUBJECT;
table GENDER, SUBJECT*PASS*(n="count" rowpctn="%");
run;

我上面有这样的代码。

enter image description here SAS正在计算BIOS和数学的百分比,因此当我对%的4求和时,它将得到100%

但是我希望SAS分别计算BIOS和数学的百分比。

例如这样的

       BIOS                 MATH
MALE - - 10 100%      10 50%  10 50%  

1 个答案:

答案 0 :(得分:1)

来自帮助(我的粗体):

  

使用PCTN和PCTSUM

     PCTN和PCTSUM统计信息可用于计算这些相同的百分比。它们使您能够手动定义分母。 PCTN和PCTSUM统计信息显示单个表单元格中的值相对于另一个表单元格中的值(用于百分比计算的分母)或一组单元格中的总值的百分比。默认情况下,PROC TABULATE汇总所有N个单元(对于PCTN)或所有SUM单元(对于PCTSUM)中的值,并将汇总值用于分母。您可以使用分母定义来控制PROC TABULATE用于分母的值。

     

您将分母定义放在PCTN或PCTSUM统计信息旁边的尖括号(<和>)中。分母定义指定为分母求和的类别。

因此,您将需要PCTN<PASS>而不是ROWPCTN

以下是使用数据集sashelp.cars

的示例
proc tabulate data=sashelp.cars;
  class type origin drivetrain;
  table type, origin*drivetrain*(n pctn<drivetrain>);
run;

enter image description here

请注意,ALL传动系统是全轮驱动,而不是通用类变量ALL