まず、前提知識として以下「ODSグラフを画像ファイルとして保存する方法」を一読ください。
https://sas-boubi.blogspot.com/2015/09/odssg.html
そして今回紹介するのが、SAS9.4M5からの新機能。
以下のプログラムをご覧ください。
proc sort data=sashelp.class out=class; by age; run; options nobyline; ods graphics / reset=index imagename='test_#byval1' outputfmt=png; ods html close; /* ←他に開いているODS出力先があれば全てCLOSEして下さい */ ods listing gpath="出力するパスを指定"; proc sgplot data=class; scatter x=height y=weight; by age; run; ods listing close; ods graphics / reset=all; ods html; /* ←デフォルトの出力をHTMLにしている場合に記述 */ /* その他、デフォルトの出力があれば、適宜記述 */ |
「ODS GRAPHICS」の「IMAGENAME=」の中で#BYが使えるようになりました!
上の例では「test_11.png、test_12.png・・・」という感じでファイルが作られます。
「OPTIONS NOBYLINE」と#BYの具体的な挙動は以下のリンク記事を参照下さい。
現状、#BYLINEと#BYVAR は挙動が安定していなかったので使用しない方が良さそう。
具体的には
- #BYLINEを指定するとログにWARNINGがでて環境によってはファイル名もおかしくなる(そもそもリファレンスにも#BYLINEの使用について言及されていない)
- #BYVARを指定すると、BY変数にラベルがついてても、ラベルではなく変数名が返される(リファレンスに書かれている挙動と異なる)
将来のバージョンで修正されるかもしれないですが、現状は#BYVALのみ使うほうがよさそうです。
0 件のコメント:
コメントを投稿