在SAS中按组获取分位数

时间:2014-09-08 08:37:33

标签: sql sas

我有这种表:

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;

2 个答案:

答案 0 :(得分:2)

这可以通过使用proc rank& amp; 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;

答案 1 :(得分:1)

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

一步到位是不可能的。