Sql 在SAS中按组获取分位数

Sql 在SAS中按组获取分位数,sql,sas,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

我有这样的桌子:

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;

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


这不可能一步完成。

这可以通过使用proc rank和proc MEANCE分两步完成

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;