2017-10-27 3 views
2

私は1つの基本変数と1000のデータセットを持っています。基本変数はps_a_pcであり、シナリオはps_a_var1 ... ps_a_var1000と呼ばれます。次のようにSAS - 行のパーセンタイル

データセットがある:

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; 

をしかし、各行に対するパーセンタイルを取得する方法を任意の簡単な方法はありますか?唯一の解決策は、データセットを転置して単変量関数を使用して計算することです。

ありがとうございます。

答えて

1

PCTL機能を使用できます。

data want; 
    set have; 
    pct80 = pctl(80, of ps_a_var1-ps_a_var1000); 
run; 

明らかに、他のパーセンタイルで必要に応じて '80'の値を調整します。

+0

ありがとう –

関連する問題