SAS-来自世界其他地区的百分位数

SAS-来自世界其他地区的百分位数,sas,row,percentile,Sas,Row,Percentile,我有一个数据集,其中有一个基本变量,生成了1000个。基本变量是ps_a_pc,场景称为ps_a_var1…ps_a_var1000 数据集如下所示: ps_a_pc ps_a_var1 .... ps_a_var1000 0 1 .... 5 3 6 .... 14 现在我想计算每一行的最小值、最大值和百分位数(20%、40%、60%、80%) 很容易得到最大值和最小值: data MinMaxRows; se

我有一个数据集,其中有一个基本变量,生成了1000个。基本变量是ps_a_pc,场景称为ps_a_var1…ps_a_var1000

数据集如下所示:

 ps_a_pc ps_a_var1 .... ps_a_var1000
    0       1      ....    5
    3       6      ....   14
现在我想计算每一行的最小值、最大值和百分位数(20%、40%、60%、80%)

很容易得到最大值和最小值:

data MinMaxRows;
     set mydata.tot_i;
array x [1000] PS_a_var1-PS_a_var1000;
min = min(of x[*],ps_a_pc);
max = max(of x[*],ps_a_pc);
run;
但是,有没有简单的方法来获取每行的百分位数?我想到的唯一解决方案是转置数据集并使用单变量函数进行计算


谢谢你的建议

您可以使用PCTL功能

data want;
    set have;
    pct80 = pctl(80, of ps_a_var1-ps_a_var1000);
run;
显然,根据其他百分位数的要求调整“80”值。

Jiri:

看这张照片