如何计算SAS中的百分位数

how to calculate percentile in SAS

我想计算分布的第 95 个百分位数。我想我不能使用 proc means 因为我需要这个值,而 proc means 的输出是 table。我必须使用百分位数来过滤数据集并创建另一个仅包含大于百分位数的观察值的数据集。 显然我不想使用数值..因为我想在 macro.

中使用它

不要将汇总统计信息放入宏变量中。你冒着失去精度的风险。 这是基于您对问题的隐晦描述。

proc means...
   output out=pct95 pct95=
   run;
data subset;
   if _n_ eq 1 then set pct95;
   set data;
   if value < pct95;
   run;

您可以使用 noprint 选项抑制 proc 方法在新选项卡中输出结果。试试这个:

proc means data = your_data noprint;
    var variable_name;
    output out = your_data2 p95= / autoname;
run;