ラベル ODS RTF の投稿を表示しています。 すべての投稿を表示
ラベル ODS RTF の投稿を表示しています。 すべての投稿を表示

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」も共通する話です。



2017年1月25日水曜日

「ODS RTF STARTPAGE=NO」でプロシジャ毎に改ページされるのを抑制する。



ODS RTF の中で、複数のプロシジャを実行すると、通常プロシジャ毎に改ページが入ります。
以下のように 「STARTPAGE=NO」 を加えることで、プロシジャ毎の改ページが抑制されます。

ods rtf  file="出力先のパス\test.rtf"  startpage=no;

      proc sgplot data=SASHELP.CLASS;
           scatter x=WEIGHT y=HEIGHT / group=AGE;
      run;

      proc means data=SASHELP.CLASS;
           var WEIGHT HEIGHT;
           class SEX;
      run;

ods rtf close;






以下のように 「ODS RTF STARTPAGE=YES;」 と書けば、そこからSASのデフォルト設定の挙動に戻せます。

ods rtf  file="出力先のパス\test.rtf"  startpage=no;

      proc sgplot data=SASHELP.CLASS;
           scatter x=WEIGHT y=HEIGHT / group=AGE;
      run;

      proc means data=SASHELP.CLASS;
           var WEIGHT HEIGHT;
           class SEX;
      run;

ods rtf  startpage=yes;

      proc means data=SASHELP.CLASS;
           var AGE;
           class SEX;
      run;

ods rtf close;



2015年5月8日金曜日

ODS HTML,RTF,PDF等の出力で、別々のファイルに同時出力する方法




まずは、以下のプログラムと実行結果を見てみましょう。

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

data DT2;
   B=2;
run;

*** 別々のファイルに同時出力する ;
ods html(1)  path="C:\"  file="TEST1.html";
ods html(2)  path="C:\"  file="TEST2.html";

   proc print data=DT1;
   run;

ods html(1) close;

   proc print data=DT2;
   run;

ods html(2) close;

出力ファイル

TEST1.html


TEST2.html


「TEST1.html」 には、最初の PRINTプロシジャの結果だけが出力され、
「TEST2.html」 には、すべての PRINTプロシジャの結果が出力されています。


「ods html(1)」 や 「ods html(2)」 というように書くことで、
同時に別々のファイルに出力することが出来ます。


ODS RTFやPDFでも同様にいけます。

2015年1月26日月曜日

ODS PDF等の出力で、ページの向きを途中から縦や横に変える方法


データステップ100万回 「外部ファイルへのODS出力のページ設定、縦横」 で、ページの向きを縦や横に設定する方法が解説されてます。


今回は、出力の途中でページの向きを変える方法を紹介します。

(「ODS PDF」で今回のテクニックが使えるのは、SAS9.3以降です。)



*** Sample Data ;
data DT1;
    do i=1 to 10;
        output;
    end;
run;


*** ページ向きを縦にして、PDFで出力 ;
options orientation=landscape;
ods pdf file="PDFファイルを出力するパス\TEST.pdf";

   proc print data=DT1;
   run;

*** ページ向きを横に変更 ;
options orientation=portrait;
ods pdf;

   proc print data=DT1;
   run;

ods pdf close;


TEST.pdf


上のプログラムで赤字にした箇所がポイントです。

options orientation=portrait;

でページの向きを横向きに変更しています。
これだけでは、変更が反映されないですが、

ods pdf;

を入れると、変更した設定を反映して出力してくれます。


2015年1月12日月曜日

ODS PDF等の出力で、ページ内折り返しをする節約テクニック


ODS PDF や ODS RTFでファイル出力する際、個人的に使ってる節約テクニックを紹介。

まずは以下のとおり、PROC PRINTの結果をPDFファイルに出力してみます。

* Sample Data ;
data DT1;
  do i=1 to 50;
     output;
  end;
run;


* PDFファイルに出力 ;
ods pdf  file="出力するパス\TEST.pdf";

   proc print data=DT1;
   run;

ods pdf close;


TEST.pdf

結果を見ると、2ページにまたがって出力されてますが、余白がいっぱいあってページの使い方が勿体ないなぁって感じです。
そこで、、


* PDFファイルに出力 ;
ods pdf  file="出力するパス\TEST2.pdf" columns=2;

   proc print data=DT1;
   run;

ods pdf close;


TEST2.pdf


1ページに収まってスッキリしました!
columns=」で、ページ内を折り返す数を指定してます。
出力先によっては挙動の違いや制限などもあるようなのでリファレンスも参照ください。


これは、見栄えだけでなく、
印刷時に、紙や印刷時間の節約にもなりますね。