データの組み合わせなどを確認する際に役立つ、ちょこっとしたオプションを紹介。
*** Sample Data ;
data DT1;
input CODE$ NAME$; cards; 001 AAA 004 DDD 003 BBB 001 AAA 004 DDD 002 CCC 002 CCC ;
|
たとえば、上のサンプルで「CODEとNAMEの値の組み合わせを調べたい」ってなったとします。
そこでまずはFREQを使ってみます。
proc freq data=DT1;
tables CODE * NAME / missing;
|
これでもいいけど、もうちょっと変数値同士の組み合わせを見やすくしたいので、、
proc freq data=DT1; tables CODE * NAME / missing list; format _all_; run; |
「LISTオプション」を追加するとリスト形式になって、確認しやすくなりました。
ちなみに、以下の設定も忘れずに!
- 変数に欠損値があった場合、欠損値も水準に含めるため「MISSINGオプション」を設定
- formatをあてた値の組み合わせではなく、変数値の組み合わせを見たい場合「FORMAT _ALL_」で全変数にあてられたformatを解除。
📝 1つ気をつけたいのが、、
例えば、以下の例
data DT2; X=" AAA"; output; X="BBB"; output; run; proc freq data=DT2; tables X / missing list; format _all_; run; |
データセットDT2の1行目の変数Xの値は「 AAA」って感じで先頭に半角スペースが含まれていますが、
FREQの出力結果を見ると、この半角スペースが削除されて表示されていますよね。
プロシジャの結果がHTML形式等で表示される際、先頭の半角スペースを除く仕様みたいです。
こんな感じで、格納値の通りに表示されない場合があるので、
データクリーニングとか、ちゃんと格納値を確認したい場合は、今回の機能だけじゃなくて、FREQをかける前の元データを目視確認したり、改行・文字化け・余計なスペース等のおかしなデータを検出するチェックプログラムを作ったり、別途確認が必要です。
てことで、あんまり使わなそうな機能でも、覚えておくと今回のようにちょっとした事で役立つという話でした。
SASに無駄な機能なしです。
0 件のコメント:
コメントを投稿