FREQプロシジャで任意の範囲でカテゴリ別に集計する方法 [OS]ALL
[リリース] 5.18, 6.07, 6.08, 6.09, 6.10
[キーワード] base, freq, format, procedure, tables, category
[質問]FREQプロシジャで任意の範囲でカテゴリ別に集計する方法を教えてください。
[回答]カテゴリごとに集計する場合、FORMATプロシジャであらかじめ範囲をまとめてフォーマットを作成し、FREQプロシジャでそのフォーマットを使用します。 proc format; value agefmt low-12 ='Low-Range' 13-15 ='Mid-Range' 16-high='Hi-Range'; run; proc freq data=sasuser.class; tables age; format age agefmt.; run;上記のプログラムを実行すると、次のように元のデータ値でなく、フォーマットで 変換した値で集計が行われます(フォーマット分類)。 Age in years Cumulative Cumulative AGE Frequency Percent Frequency Percent ------------------------------------------------------ Low-Range 7 36.8 7 36.8 Mid-Range 11 57.9 18 94.7 Hi-Range 1 5.3 19 100.0フォーマット分類はFREQプロシジャだけでなく、他のプロシジャでも利用できます。 以下にCHARTプロシジャの例を示します。 proc chart data=sasuser.class; vbar age / discrete; format age agefmt.; run;横軸には、フォーマットで変換した値が使用されます。 Frequency | ***** 10 + ***** | ***** 8 + ***** | ***** ***** 6 + ***** ***** | ***** ***** 4 + ***** ***** | ***** ***** 2 + ***** ***** | ***** ***** ***** -------------------------------------------- Low-Range Mid-Range Hi-Range Age in years |