我是SAS新手,请尝试进一步了解Proc Tabulate。
proc tabulate data=stem_camp1;
class gender pass SUBJECT;
table GENDER, SUBJECT*PASS*(n="count" rowpctn="%");
run;
我上面有这样的代码。
SAS正在计算BIOS和数学的百分比,因此当我对%的4求和时,它将得到100%
但是我希望SAS分别计算BIOS和数学的百分比。
例如这样的
BIOS MATH
MALE - - 10 100% 10 50% 10 50%
答案 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;
请注意,ALL
传动系统是全轮驱动,而不是通用类变量ALL 。