ラベル ステートメント: TITLE の投稿を表示しています。 すべての投稿を表示
ラベル ステートメント: TITLE の投稿を表示しています。 すべての投稿を表示

2019年6月21日金曜日

「ODS RTF」+「SGPLOT」だと、TITLEステートメントの設定値がグラフのタイトルになってしまう





以下の例をご覧ください。

title "HEIGHT AND WEIGHT";

ods rtf file="出力パス\test.rtf";

    proc sgplot data=sashelp.class;
        scatter x=height y=weight;
    run;

ods rtf close;


TITLEステートメントの設定値がSGPLOTのグラフ内のタイトルにあてられました。



いやいや、「RTFのヘッダーにあててほしいんだけど」って場合は「NOGTITLE」というオプションを指定します。

title "HEIGHT AND WEIGHT";

ods rtf file="出力パス\test.rtf" nogtitle;

    proc sgplot data=sashelp.class;
        scatter x=height y=weight;
    run;

ods rtf close;



同様にFOOTNOTEステートメントが設定されてると、SGPLOTのグラフ内のフットノートに当てられます。
これも「NOGFOOTNOTE」というオプションを指定することで、RTFのフッターにあてることができます。



ちなみに「ODS RTF」だけじゃなくて、「ODS EXCEL」「ODS PDF」とかも共通する話です。
あと「SGPLOT」だけじゃなく、「GPLOT」も共通する話です。



2019年3月1日金曜日

TITLEステートメントでBY値を表示する「#BYLINE、#BYVAL、#BYVAR」




前回「OPTIONS NOBYLINE」と「#BYLINE」のコンボ技を紹介しました。
詳細は前回の記事を参照下さい。


以下例は前回記事のおさらい。

*** サンプルデータ ;
proc sort data=sashelp.class out=class;
   by age;
run;

*** 「OPTIONS NOBYLINE」と「#BYLINE」を使う ;
options nobyline;
title "#byline";

proc print data=class;
   by age;
run;















ここからが今回紹介したいこと、
TITLEステートメントには「#BYLINE」以外にも「#BYVAL」「#BYVAR」というのが指定できます。

指定TITLEに表示される値
#BYLINE

BY変数名=BY値
  • 変数にラベルが当てられてる場合はラベルを表示
  • 変数にFORMATが当てられてる場合はFORMATをあてた値を表示
#BYVAL( BY変数名 )
 or
#BYVALn
指定したBY変数の値
  • 変数にFORMATが当てられてる場合はFORMATをあてた値を表示
#BYVAR( BY変数名 )
 or
#BYVARn
指定したBY変数の変数名
  • 変数にラベルが当てられてる場合はラベルを表示


📝 ポイント1

「#BYVALn」と「#BYVARn」の「n」は何個目のBY変数かを指定します。
例えば以下のように書いた場合、

options nobyline;
title "#byvar2";
proc print data=aaa;
   by xx yy;
run;

「#BYVAR2」の「2」は2個目のBY変数「YY」を指しています。


📝 ポイント2

以下例のように#BYと任意のテキストの間にドットを入れることで、繋げて表示することも出来ます。

title "#byval1.years old";

例えば、#BYVAL1の値が「13」だったら「13years old」と出力されます。





例

options nobyline;
title "#byval(age) years old";
proc print data=class;
   by age;
run;



options nobyline;
title "#byvar1 = #byval1.years old";
proc print data=class;
   by age;
run;








2015年12月18日金曜日

TITLEステートメントで左寄せしたり書式を設定したりする。



(※書式設定はHTMLやRTF等の一部出力のみ対応しています)


まず普通に出力した場合、タイトルは中央寄せになります。

title "あいうえお" ;
proc print data=SASHELP.CLASS (obs=5);
run;






① NOCENTERオプション


NOCENTERオプションを設定すると、タイトルやプロシジャの結果などすべて左寄せになります。
(ちなみにSAS Studioだと何故か設定できなかったり、できたり挙動がおかしい。。)

options nocenter;

title "あいうえお" ;
proc print data=SASHELP.CLASS (obs=5);
run;

options center;



CENTERオプションで中央寄せ(デフォルト)に戻せます。




② TITLEステートメントのオプション


TITLEステートメントには書式を設定するオプションがあります。


構文
 TITLE  書式  "タイトル" ;



書式には以下が設定できます。

書式設定内容
COLOR=色文字色
BCOLOR=色文字の背景色
FONT="フォント"フォント
HEIGHT=サイズフォントサイズ
BOLD太字で表示
ITALICイタリックで表示
JUSTIFY= LEFT | CENTER | RIGHT文字の位置
LINK = 'URLを指定'ハイパーリンクの設定
UNDERLINE = 1 ~ 3下線
SAS/GRAPHでは数字によって下線の太さが変わり、HTML等のODS出力ではどの数字でも太さは変わらないようです。



いくつか例を見ていきましょう。


  • タイトルだけ左寄せにする。
title justify=left "あいうえお" ;
proc print data=SASHELP.CLASS (obs=5);
run;




  • 文字ごとに右寄せしたり左寄せしたりする。
title justify=left "あい" justify=center "うえ"  justify=right "お";
proc print data=SASHELP.CLASS (obs=5);
run;




  • その他フォント等も設定できる。
title color="red"  font="MS P明朝"  height=20pt  "あいうえお" ;
proc print data=SASHELP.CLASS (obs=5);
run;




FOOTNOTEでも同様の設定が行えます。


2015年7月30日木曜日

TITLEまたはFOOTNOTEを全てクリアする


以前、以下のようなプログラムを見かけました。

* サンプルデータ作成 ;
data a;
   A=1;
run;

* 出力 ;
title "aa";
title2 "bb";
title3 "cc";

proc print; run;

title;
title2;
title3;





タイトルをクリアするために
title;
title2;
title3;
と書いていますが、これは以下のプログラムでまとめてクリアできます。
goptions reset=title;
もしくは
title;

footnoteの場合は、以下のように書けます。
goptions reset=footnote;
もしくは
footnote;