SAS- 计算最高人口百分比
SAS- Calculate Top Percent of Population
我正在尝试寻求一些验证,这对大多数人来说可能微不足道,但我绝不是统计学专家。我正在尝试 select 根据每种药物和位置的得分排名前 1% 的患者。数据看起来像这样(规模更大):
Patient drug place score
John a TX 12
Steven a TX 10
Jim B TX 9
Sara B TX 4
Tony B TX 2
Megan a OK 20
Tom a OK 10
Phil B OK 9
Karen B OK 2
我编写的用于计算前 1% 患者的代码片段如下:
过程 sql;
create table example as
select *,
score/avg(score) as test_measure
from prior_table
group by drug, place
having test_measure>.99;
quit;
这是否实现了我正在尝试做的事情,或者我所做的一切都是错误的?对不起,如果这对大多数人来说真的很微不足道。
谢谢
有多种方法可以计算和估计百分位数。一个简单的方法是使用 PROC SUMMARY
proc summary data=have;
var score;
output out=pct p99=p99;
run;
这将创建一个名为 pct
的数据集,其变量 p99
包含第 99 个百分位数。
然后过滤您的 table 值 >=p99
proc sql noprint;
create table want as
select a.*
from have as a
where a.score >= (select p99 from pct);
quit;
我正在尝试寻求一些验证,这对大多数人来说可能微不足道,但我绝不是统计学专家。我正在尝试 select 根据每种药物和位置的得分排名前 1% 的患者。数据看起来像这样(规模更大):
Patient drug place score
John a TX 12
Steven a TX 10
Jim B TX 9
Sara B TX 4
Tony B TX 2
Megan a OK 20
Tom a OK 10
Phil B OK 9
Karen B OK 2
我编写的用于计算前 1% 患者的代码片段如下: 过程 sql;
create table example as
select *,
score/avg(score) as test_measure
from prior_table
group by drug, place
having test_measure>.99;
quit;
这是否实现了我正在尝试做的事情,或者我所做的一切都是错误的?对不起,如果这对大多数人来说真的很微不足道。 谢谢
有多种方法可以计算和估计百分位数。一个简单的方法是使用 PROC SUMMARY
proc summary data=have;
var score;
output out=pct p99=p99;
run;
这将创建一个名为 pct
的数据集,其变量 p99
包含第 99 个百分位数。
然后过滤您的 table 值 >=p99
proc sql noprint;
create table want as
select a.*
from have as a
where a.score >= (select p99 from pct);
quit;