【问题标题】:Proc Tabulate rowpctn separate column percentProc Tabulate rowpctn 单独的列百分比
【发布时间】:2019-06-28 00:27:38
【问题描述】:

我是 SAS 新手,请尝试更多地了解 Proc Tabulate。

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

我上面有这样的代码。

SAS 正在计算 BIOS 和 MATH 的百分比,所以当我总结 4 的 % 时,它得到 100%

但我希望 SAS 分别计算 BIOS 和 MATH 的百分比。

例如这样

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

【问题讨论】:

    标签: sas


    【解决方案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。 p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      相关资源
      最近更新 更多