2017年3月28日火曜日

一部の集計系プロシジャで使える 「ORDER=オプション」で分類変数の値の出力順をカスタマイズする。


一部の集計系プロシジャ (PROC FREQ, MEANS, REPORTなど) では 「ORDER=オプション」がサポートされています。

このオプションでは、例えば性別の頻度集計で、男→女の順で出したり、女→男の順で出したりなど、出力順をカスタマイズできます。

今回はPROC FREQでの使用例を見ていきましょう。


サンプルデータ

data DT1;
input A @@;
cards;
2 1 1 3 3 3
;
run;




ORDER=オプションの指定例

ORDER = INTERNAL … 変数値を昇順に並び替えて出力
proc freq data=DT1  order=internal;
  table A;
run;


PROC FREQのデフォルトはORDER=INTERNALです。


ORDER=  DATA … データセットに格納されている順。
proc freq data=DT1  order=data;
  table A;
run;


ORDER = FREQ … 度数が多い順に出力
proc freq data=DT1  order=freq;
  table A;
run;


ORDER = FORMATTED … 変数に割り当てたフォーマットに変換させた時の値順。
proc format;
value SEX
1="MALE"
2="FEMALE"
3="UNANSWERD"
;
run;
proc freq data=DT1  order=formatted;
  table A;
  format A SEX.;
run;


ORDER=FORMATTED を指定する場合は注意が必要です
「ORDER=FORMATTED」の落とし穴


ORDER=オプションの指定場所

本オプションの指定場所は以下のように様々です。詳細が知りたい方は別途マニュアルをご覧ください。

* PROC MEANS : CLASS変数全体にORDER=オプションを適用 ;
proc means data=xx order=internal;
 var xx;
 class yy;
run;

* PROC MEANS : CLASS変数YYにORDER=オプションを適用 ;
proc means data=xx ;
 var xx;
 class yy / order=internal;
 class zz ;
run;

* PROC REPORT : 出力変数XXにORDER=オプションを適用 ;
proc report data=xx;
  column xx yy;
  define xx / order=internal;
run;




注意

他のオプションとの組み合わせで、ORDER=オプションが機能しなかったり、出力順が変わることもあるのでご注意ください。

0 件のコメント:

コメントを投稿