2017年1月31日火曜日

ODSTABLEプロシジャ入門2:ヘッダー・フッターの設定【DEFINE HEADER、FOOTER】



ヘッダー・フッターの設定方法を紹介していきます。


基本構文

  PROC ODSTABLE  ・・・;
       COLUMN   ・・・ ;

       DEFINE  HEADER   適当なヘッダー名;
             TEXT   "表示するテキスト " ;
             オプション ;
       END;

  RUN;



例①

proc odstable data=SASHELP.CLASS;
  column NAME AGE SEX WEIGHT HEIGHT;
  define header MYHEAD1;
     text "ABCDE";
  end;
run;


ちなみにTEXTステートメントで文字を改行する方法の一つとして、、

proc odstable data=SASHELP.CLASS;
  column NAME AGE SEX WEIGHT HEIGHT;
  define header MYHEAD1;
     text "#ABC#DE";
  end;
run;

後で説明するSPLIT=オプションが設定されていない状態で、先頭の1文字目が以下のいずれでもない場合、その文字を改行用の文字に設定できます。
  • 次の半角文字:英数字, スペース, アンダーバー(_), ハイフン(-), ピリオド(.), パーセント(%)
  • 日本語等のマルチバイト文字(リファレンスに記載がないので検証が必要です)
 

例②

proc odstable data=SASHELP.CLASS;
  column NAME AGE SEX WEIGHT HEIGHT;
  define header MYHEAD1;
     text "ABCDE";
  end;
  define header MYHEAD2;
     text "FGHIJ";
  end;
run;

define header を複数定義すると、縦に積み重ねて出力することが出来ます。


例③

proc odstable data=SASHELP.CLASS;
  column NAME AGE SEX WEIGHT HEIGHT;
  define header MYHEAD1;
     text "ABCDE";
     start=NAME;
     end=AGE;
  end;
  define header MYHEAD2;
     text "FGHIJ";
     start=SEX;
     end=HEIGHT;
  end;
run;

start=変数名」 と 「end=変数名」 を設定するとヘッダーの表示範囲を指定できます。
上記の例では
1つ目のヘッダーに「NAME~AGE」、
2つ目のヘッダーに「SEX~HEIGHT」
の範囲でヘッダーを割り当てています。


例④

proc odstable data=SASHELP.CLASS;
  column NAME AGE SEX WEIGHT HEIGHT;
  define header MYHEAD1;
     text "ABC#DE";
     split="#";
     just=left;
     style={color=blue};
  end;
run;

ヘッダーに様々なオプションを設定できます。

①「split="#"」 でヘッダーに「#」の文字が入ってたら改行するよう設定。("#" じゃなくても好きな半角文字を設定できます)
②「just=left」 でヘッダーの文字を左詰めに。
③「style={color=blue}」 で文字色を青に。

ods listing以外の出力先(rtf, html等)では「style={ 書式 }」で、ヘッダーの書式設定ができます。
設定できる書式はods出力先毎に違います。
記述方法や注意点等とあわせ、リファレンスをご確認下さい。


以下proc reportのstyleオプションの記事も参考になるかと思います。



例⑤

proc odstable data=SASHELP.CLASS (obs=5);
  column NAME AGE SEX WEIGHT HEIGHT;
  define footer MYFOOT1;
     text "ABCDE";
  end;
run;

define footer でフッターの設定が出来ます。
構文はdefine header と一緒。



おまけ

以下のように、headerステートメントをつかって最初にヘッダーであることを明示する書き方もあります。

*** 今までの書き方 ;
proc odstable data=SASHELP.CLASS;
  column NAME AGE SEX WEIGHT HEIGHT;
  define header MYHEAD1;
     text "ABCDE";
  end;
run;

 ↓

*** headerステートメントを使う書き方 ;
proc odstable data=SASHELP.CLASS;
  column NAME AGE SEX WEIGHT HEIGHT;
  header MYHEAD1;
  define MYHEAD1;
     text "ABCDE";
  end;
run;


footerステートメントを使って、フッターに対しても同様の書き方が出来ます。



ODSTABLEプロシジャ入門記事一覧

1.基本構文【COLUMN】
2.ヘッダー・フッター【DEFINE HEADER, FOOTER】
3.変数の設定【DEFINE COLUMN】


0 件のコメント:

コメントを投稿