簡體   English   中英

在SAS中按組獲取分位數

[英]Get quantile by groups in 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;

這可以通過使用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;

您需要首先按群集和年齡獲取四分位數。 然后重新合並主數據集,根據四分位數分配組,最后計算平均購買集群年齡和四分位數。

一步到位是不可能的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM