【问题标题】:Get quantile by groups in SAS在 SAS 中按组获取分位数
【发布时间】:2014-09-24 23:54:13
【问题描述】:

我有这种桌子:

Cluster    Age    FR
      8     70   153
...

我想要的是得到一个表:对于每个集群和每个年龄,每个第 10 个分位数的 FR 平均值。它应该看起来像:

Cluster Age Quantile    FR
1       1   10%         12
1       1   20%         14
1       1   30%         16
1       1   40%         18
1       1   50%         20
1       1   60%         22
1       1   70%         24
1       1   80%         26
1       1   90%         28
1       1   100%        30
1       2   10%         13
1       2   20%         15
1       2   30%         17

我尝试使用 proc 单变量执行此操作,但没有成功...

proc univariate data=etude.Presta_cluster_panier noprint;
    var FR;
    output out=pctls pctlpre=P_ pctlpts=0 to 100 by 10;
run;

【问题讨论】:

    标签: sql sas


    【解决方案1】:

    这可以通过使用 proc rank 和 proc 方法分两步完成。

    proc rank data=etude.Presta_cluster_panier out=outranks groups=10;
        var FR;
        ranks Quantile;
        by Cluster Age;
    run;
    
    proc means data=outranks;
        var FR;
        ways 3;
        class Cluster Age Quantile;
        output out=outmean;
    run;
    

    【讨论】:

      【解决方案2】:

      您需要先按集群和年龄获取四分位数。然后与您的主数据集重新合并,根据您的四分位数分配组,最后计算平均购买集群年龄和四分位数。

      不可能一步到位。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-25
        • 1970-01-01
        • 2021-01-06
        • 2021-01-06
        • 2018-09-02
        • 1970-01-01
        • 1970-01-01
        • 2017-08-14
        相关资源
        最近更新 更多