度数変数を考慮に入れた順位付けについて

[OS] ALL
[リリース] ALL
[キーワード] RANK, TRANSREG, MODEL

[質問]

ある変数について順位付けを行なうとき、度数変数を考慮に入れた上で順位を与えることはできますか。

[回答]

順位付けを行なう場合、通常はRANKプロシジャが利用されますが、FREQステートメントがサポートされていないため、こ の質問のケースには対応できません。

このような場合、TRANSREGプロシジャを使用して順位付けを行なうことができます。MODELステートメントで変数変換方法RANKを使用し、同時にFREQステートメントで度数を表す変数を指定してください。
なお、値の小さい方から順に1、2、3、・・・のように割り当てられます。
また、タイが存在するときには平均の順位が与えられます。


                                             /* サンプルデータの作成 */
   DATA test;
     INPUT y @@;
     freq=1+INT(RANUNI(123)*10);
     x=RANUNI(123)*10;
   CARDS;
   1 5 3 3 1
   ;
   RUN;

                                              /* TRANSREGプロシジャ */
   PROC TRANSREG DATA=test DESIGN;
     MODEL RANK(y x/NAME=(rank_y rank_x));
     OUTPUT OUT=out(DROP=Intercept _name_ _type_);
     FREQ freq;
     ID y x;
   RUN;

                                  /* 出力されたSASデータセットの確認 */
   PROC PRINT DATA=out;
   RUN;