data DT1;
input NO$ A B; cards; 001 1 4 002 2 5 003 3 6 ; |
(※ヘッダーを指定しないと、変数ラベルまたは変数名が表示されます)
- 「SPLIT="半角文字"」で指定した半角文字をヘッダーの改行用文字に設定できます。
- SPLIT=を指定しないと、デフォルトでスラッシュ「/」が改行用文字になります。
- ODS出力の種類(LISTING, HTML, RTFなど)によって、ヘッダー部分のみに機能したり、データ部分にも機能したりと挙動が異なるので、各自で挙動確認した方が良いです。
構文
COLUMN ( "ヘッダー" 変数名1 変数名2 ・・・ ) ;
|
- まず2段にしたい部分をカッコで囲みます。
- ヘッダーを指定することで1段追加することができ、
- 変数名を指定することで、次の段に変数を並べる事ができます。
応用
以下のように、カッコをネストする事も可能。
さらに書式などを細かく設定するにはSTYLE=オプションというものがあり、別記事で紹介予定。
REPORTプロシジャ入門記事一覧
さらに書式などを細かく設定するにはSTYLE=オプションというものがあり、別記事で紹介予定。
2.ヘッダーの設定
3.並べ替え・グループ化【ORDER, GROUP】
すみません、ちょっと腑に落ちないことがあって、知っていたら教えてほしいのですが。
返信削除9.4M3で以下を実行すると
data Q1;
A=1;B=2;C=3;D=4;E=5;
run;
options nocenter;
ods rtf;
proc report data=Q1 nowd;
column A ("2段" B C) D E;
define A/display style={cellwidth=100};
define B/display style={cellwidth=100};
define C/display style={cellwidth=100};
define D/display style={cellwidth=100};
define E/display style={cellwidth=100};
run;
ods rtf close;
「WARNING: スパンのヘッダーまたはフッターでのOUTPUTWIDTH=の使用は期待された結果を得られません。従来の用法には、データカラムのセルだけにoutputwidthを指定してください」が
でるようになりました。
ods rtf;
proc report data=Q1 nowd;
column A ("2段" B C) ("" D E);
define A/display style={cellwidth=100};
define B/display style={cellwidth=100};
define C/display style={cellwidth=100};
define D/display style={cellwidth=100};
define E/display style={cellwidth=100};
run;
ods rtf close;
とするか
ods rtf;
proc report data=Q1 nowd;
column A ("2段" B C) D E;
define A/display style(column)={cellwidth=100};
define B/display style(column)={cellwidth=100};
define C/display style(column)={cellwidth=100};
define D/display style(column)={cellwidth=100};
define E/display style(column)={cellwidth=100};
run;
ods rtf close;
で、でなくなることはわかったのですが、このWARNINGはどういう理屈ででちゃってるんでしょうか?style()で明示しないとheaderとcolumn両方にかかるので、段組したheaderにcellwidthがかかってしまいということなんでしょうが、段組している箇所の後に2変数以上、columnがあるときのみでるような気がして、意味がわかりません。
うーむ、これは謎ですね。。
削除私もSASYAMAさんが仰る通り「style()で明示しないとheaderとcolumn両方にかかる」というくらいの認識しか持ってなく、
「段組している箇所の後に2変数以上、columnがあるときのみ」っていうのは初めて知りました。
色々なデータパターンで検証してみて、WARNINGが出る場合と出ない場合は見えてきたんですが、それが何故なのかは見えませんでした。
例えば以下のようにA~Fまでの変数があって、それを最後のFだけ「style(column)=」を指定するとWARNINGが出なくなります。
column A ("2" B C) D E F;
define A / display style={cellwidth=100};
define B / display style={cellwidth=100};
define C / display style={cellwidth=100};
define D / display style={cellwidth=100};
define E / display style={cellwidth=100};
define F / display style(column)={cellwidth=100};
段組の後に出力している変数の状態が、このWARNINGに直接的または間接的に影響している?って事なんでしょうかね。
何れにしろ段組しててstyleステートメント使う時は column, header を指定しといたほうがよさそうですね。
勉強になりました。また何か分かったら教えてください。
はじめまして、最近SASを始めたものです。
返信削除このブログにはいつもお世話になっております、有難うございます。
基礎的なご質問で申し訳ないのですが、reportプロシジャを使用した際、デフォルトで変数名にラベルが適用されてしまうのですが、これをもとの変数名で表示する方法はありますでしょうか?
もし知っている方がいらっしゃれば、お答えいただければ幸いです。
shiniさん、はじめまして。コメント有難うございます。
削除以下でどうでしょうか。
options nolabel;
proc report ・・・・・・; run;
options label;
まず、REPORTプロシジャ自体には、変数ラベルを無効にするオプションがないようです。
なので、システムオプションをいじる必要があります。
options nolabel;
で、SASプロシジャで変数ラベルを使用しないように設定します。
このシステムオプションはreportプロシジャだけでなく、他のSASプロシジャにも適用されてしまいます。
他のプロシジャで挙動が変わるのはマズイので、
options label;
で設定を戻しています。
matsu aさん
削除質問にお答えいただきまして、ありがとうございます。
なるほど、optionsステートメントで制御すればよかったのですね。
書籍などで調べても思いつかなかったのでとても有り難いです。有難うございました。
始めたばかりですが、引き続き勉強していこうと思います!