- データセットを直接開いて見る
- PRINTプロシジャ等でデータセットの中身を出力して見る
といった方法があります。
今回は、PRINTプロシジャを使った方法を紹介します。(沢山機能があるので、基本の部分のみ紹介)
例① 基本構文
proc print data=SASHELP.CLASS; run; |
「data=」に表示したいデータセット名を指定します。
今回は「SASHELP.CLASS」を表示対象としています。
ここからステートメントやオプション等を追加して、出力をカスタマイズしていきます。
以下で紹介する機能は、オプションや設定等の組み合わせで、機能しなかったり挙動が変わる場合がある点だけ注意です。
例② VARステートメント
VARステートメントで表示したい変数を指定することができます。
例③ LABEL、NOOBSオプション
LABELオプション・・・
通常、「オプションなし」の例のように列ヘッダーには変数名が表示されますが、LABELオプションを指定すると、変数ラベルを表示できます。
NOOBS・・・
通常、「オプションなし」の例のように一番左側に「OBS」という列が表示されますが、NOOBSオプションを指定すると、この列を非表示にできます。
例④ WHEREステートメント
WHEREステートメントでオブザベーションの抽出条件を指定できます。
(上の例では、AGE=13のオブザベーションのみを表示しています)
例⑤ OBS=データセットオプション
OBS=データセットオプションで、処理を停止するタイミングを指定できます。
例② VARステートメント
proc print data=SASHELP.CLASS; var NAME SEX AGE; run; |
VARステートメントで表示したい変数を指定することができます。
例③ LABEL、NOOBSオプション
* オプションなし ; proc print data=SASHELP.BASEBALL; var NAME TEAM; run; * オプションあり ; proc print data=SASHELP.BASEBALL label noobs; var NAME TEAM; run; |
通常、「オプションなし」の例のように列ヘッダーには変数名が表示されますが、LABELオプションを指定すると、変数ラベルを表示できます。
NOOBS・・・
通常、「オプションなし」の例のように一番左側に「OBS」という列が表示されますが、NOOBSオプションを指定すると、この列を非表示にできます。
例④ WHEREステートメント
proc print data=SASHELP.CLASS ; where AGE = 13; run; |
WHEREステートメントでオブザベーションの抽出条件を指定できます。
(上の例では、AGE=13のオブザベーションのみを表示しています)
例⑤ OBS=データセットオプション
OBS=データセットオプションで、処理を停止するタイミングを指定できます。
(上の例では、3オブザベーションまでで処理を停止しています)
データセット名の後ろにカッコで囲んで指定します。
データセット名の後ろにカッコで囲んで指定します。
ちなみに、入門の範疇を少し超えますが、以下記事の通り、他の機能と組み合わせて使用する際は、その挙動にも注意です。
FIRSTOBS=, OBS=, WHERE を組み合わせたときの挙動
注意点
PRINTプロシジャ利用時のヒント
注意点
出力の設定がテキスト形式(ODS LISTING)になっている場合、変数に格納されている文字が長いと、文字切れを起こして途中までしか出力されません(ログにWARNINGが出ます)
PRINTプロシジャ利用時のヒント
PRINTプロシジャには不向きなデータがあります。
例えば、変数の数が多かったり、オブザベーション数が多い場合、
表示されたものが縦や横にながく見づらかったり、そもそもプロシジャの実行にめちゃくちゃ時間が掛かります。
素直にデータセット直接開いて中身見た方が早いです。
ただ、そういった場合でも、VAR、WHERE、OBS=などを組み合わせて、表示する変数やオブザベーションを絞るなどすれば、ある程度見やすくなります。
例えば、変数の数が多かったり、オブザベーション数が多い場合、
表示されたものが縦や横にながく見づらかったり、そもそもプロシジャの実行にめちゃくちゃ時間が掛かります。
素直にデータセット直接開いて中身見た方が早いです。
ただ、そういった場合でも、VAR、WHERE、OBS=などを組み合わせて、表示する変数やオブザベーションを絞るなどすれば、ある程度見やすくなります。
0 件のコメント:
コメントを投稿