2016年1月18日月曜日

SORTプロシジャによる降順ソートの便利技




サンプルデータ

data DT1;
input A$ B C$ @@;
cards;
001 1 a 001 1 b 001 2 c 002 1 a 002 2 b
;




通常の降順ソート


変数A, B, Cをキーに、オブザベーションを降順ソートしたい場合、
以下のようにdescendingオプションを変数名の前につけます。

proc sort data=DT1;
   by descending descending B descending C ;
run;




KEYステートメントを使うと。。


上のようにdescendingオプションを全ての変数に指定するのって面倒だなーと思いませんか?
そんな時はKEYステートメントが便利です。

proc sort data=DT1;
   key A B C / descending ;
run;


これはBYステートメントと同様の機能を持ってるうえ、
  • 「KEY  変数名1 変数名2 … / オプション ;」

というように指定した変数すべてにオプションを適用する事ができるんです。




ちなみに変数Aを昇順かつ、B,Cを降順でオブザベーションをソートしたい場合、以下のように書くことも出来ます。

proc sort data=DT1;
   key A ;
   key B C / descending ;
run;




0 件のコメント:

コメントを投稿