Sas で proc rank を使用する方法 (例付き)


SAS でPROC RANKを使用して、1 つ以上の数値変数のランクを計算できます。

この手順を使用する最も一般的な 4 つの方法を次に示します。

方法 1: 1 つの変数をランク付けする

 proc rank data =original_data out =ranked_data;
   var var1;
   ranks var1_rank;
run ;

方法 2: 変数をグループ別に分類する

 proc rank data =original_data out =ranked_data;
   var var1;
   by var2;
   ranks var1_rank;
run ;

方法 3: 変数をパーセンタイルにランク付けする

 proc rank data =original_data groups =4 out =ranked_data;
   var var1;
   ranks var1_rank;
run ;

方法 4: 複数の変数を分類する

 proc rank data =original_data out =ranked_data;
   var var1 var2;
   ranks var1_rank var2_rank;
run ;

次の例は、SAS の次のデータセットで各メソッドを使用する方法を示しています。

 /*create dataset*/
data original_data;
    input team $pointsrebounds;
    datalines ;
At 25 10
At 18 4
At 18 7
At 24 8
B 27 9
B 33 13
B 31 11
B 30 16
;
run ;

/*view dataset*/
proc print data = original_data; 

例 1: ランク 1 の変数

次のコードは、各チームが獲得したポイントをランク付けするPoints_rankという新しい変数を作成する方法を示しています。

 /*rank points scored by team*/
proc rank data =original_data out =ranked_data;
   var points;
   ranks points_rank;
run ;

/*view ranks*/
proc print data =ranked_data;

最も多くのポイントを獲得したチームが最高のランキングを獲得し、最も少ないポイントを獲得したチームが最低のランキングを獲得します。

獲得したポイントが同点の場合は、平均ランクが割り当てられます。たとえば、1 番目と 2 番目に低いポイントを持つ行には、1 と 2 の平均であるため、1.5 のランクが付けられます。

代わりに、 decendingステートメントを使用して、最も多くのポイントを持つチームに最低ランクを割り当てることができることに注意してください。

 /*rank points scored by team in descending order*/
proc rank data =original_data descending out =ranked_data;
    var points;
    ranks points_rank;
run ;

/*view ranks*/
proc print data =ranked_data; 

例 2: グループごとにランク 1 の変数

次のコードは、得点をチームごとにグループ化してランク付けする、 points_rankという新しい変数を作成する方法を示しています。

 /*rank points scored, grouped by team*/
proc rank data =original_data out =ranked_data;
    var points;
    by team;
    ranks points_rank;
run ;

/*view ranks*/
proc print data =ranked_data; 

例 3: 変数をパーセンタイルにランク付けする

groups ステートメントを使用して、変数をパーセンタイル グループに並べ替えることができます。たとえば、各ポイント値を四分位 (4 つのグループ) に分類できます。

 /*rank points into quartiles*/
proc rank data =original_data groups =4 out =ranked_data;
   var points;
   ranks points_rank;
run ;

/*view ranks*/
proc print data =ranked_data;

最も低い四分位にあるポイント値を持つ行には0のグループが割り当てられ、次に低い四分位にあるポイントを持つ行には1のグループが割り当てられます。

: 十分位数で値を割り当てるには、単にgroups=10を使用します。

例 4: 複数の変数を分類する

次のコードは、ポイントリバウンドを分類するための新しい変数の両方を作成する方法を示しています。

 proc rank data =original_data out =ranked_data;
   var points rebounds;
   ranks points_rank rebounds_rank;
run ; 

追加リソース

次のチュートリアルでは、SAS で他の一般的なタスクを実行する方法について説明します。

SAS での手順の概要の使用方法
SAS で Proc Tabulate を使用する方法
SAS で PROC Transpose を使用する方法
SAS で度数表を作成する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です