【问题标题】:SAS Proc-Tabulate: Output single percentage columnSAS Proc-Tabulate:输出单个百分比列
【发布时间】:2015-04-23 18:14:45
【问题描述】:

我想使用 proc tabulate 来总结属于三个分类变量 V1-V3 的受益人的百分比(这是我们正在查看的个人级别数据集)。我有以下 proc 步骤,它工作正常,但产生的百分比为 PctN_1110、PctN_1100 等。但我只想得到一个百分比列(这将是提供的百分比列的并集)。我知道我可以在 proc 步骤之后的数据步骤中做到这一点,但我想知道是否有办法在 proc 制表步骤中实现这一点。谢谢!

   Proc tabulate date = in_datea
                  Out = out_data;
             Var X1 X2 X3; 
             Table (V1 all) * (V2 all) * (V3 all), N pctn<V3 all>;
    Run;

【问题讨论】:

  • 我很少发现 proc tabulate 的输出有用。它通常用于准备输出以供显示。我可以看到在一个步骤中生成您想要的所有统计信息的唯一方法是 Proc SQL 步骤。
  • 我想使用 Proc Tabulate 而不是 Proc SQL 的原因是它很容易为每个分类变量生成总(所有)行。你知道是否有一种简单的方法可以使用 Proc Sql SQL 生成“所有”行。(我对 SAS 有点陌生)
  • 你是对的,Proc SQL 不会很好地进行小计或总计。老实说,我没有看到一种方法可以通过一个不错的输出表一步完成。这也取决于您想在之后对数据做什么。您可以尝试 proc 报告,我会使用 proc 方法 + 数据步骤。
  • 好的,谢谢。我会研究 Proc 手段
  • 对于 proc 意味着查看 WAYS/TYPE 语句 - 允许创建小计。

标签: sas


【解决方案1】:
I'm not sure what you are trying to achieve but the below code is based on my understanding of your question.  

 proc format ;

picture mypct low-high='000.00,009.00%';

run;



proc tabulate data=in_data out=out_data;
    class Var X1 X2 X3; 
    tables ((V1 )all),(V2(all)),(v3) 
                        (all)*( N reppctN*f=pctfmt7.1)/rts=20 ;

        run;

【讨论】:

  • 我假设 OP 正在查看输出数据集,而不是结果窗口中的输出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多