2017-05-24 144 views
1

我想要尋求一些驗證,對於大多數人來說這可能是微不足道的,但我絕不是統計專家。我試圖根據每種藥物和地點的評分選擇最高1%的患者。這些數據將是這個樣子(在更大的尺度):SAS-計算人口最高百分比

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%的患者代碼snipit如下: PROC SQL;

create table example as 
select *, 
score/avg(score) as test_measure 
from prior_table 
group by drug, place 
having test_measure>.99; 
quit; 

這是否實現了我想要做的事情,或者正在做的全部錯誤?對不起,如果這對大多數人來說真的很微不足道。 謝謝

回答

0

有多種方法可以計算和估計百分位數。一個簡單的方法是使用PROC SUMMARY

proc summary data=have; 
var score; 
output out=pct p99=p99; 
run; 

這將創建一個包含99百分位的變量p99名爲pct的數據集。

然後篩選表值>=p99

proc sql noprint; 
create table want as 
select a.* 
    from have as a 
    where a.score >= (select p99 from pct); 
quit; 
+0

謝謝,並獲得每個位置和藥品我只想增加一個內的第99百分位數「類藥物的地方;」聲明,對嗎? – bmb1020

+0

正確。顯然你需要修改你的查詢。 – DomPazz

+0

真棒謝謝你的幫助。 – bmb1020