2019年3月19日火曜日

【小技】ODSグラフの保存時、ファイル名にBY値を入れる




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 listing gpath="出力するパスを指定";

   proc sgplot data=class;
      scatter x=height y=weight;
      by age;
   run;

ods listing close;
ods graphics  /  reset=all;
ods html;



「ODS GRAPHICS」の「IMAGENAME=」の中で#BYが使えるようになりました!
上の例では「test_11.png、test_12.png・・・」という感じでファイルが作られます。


「OPTIONS NOBYLINE」と#BYの具体的な挙動は以下のリンク記事を参照下さい。



ただし!!

本来は、#BYLINEと#BYVARも使えるはずなんですが、不具合で環境によっては正しく動きません。
具体的には

・#BYLINEを指定するとログにWARNINGがでて環境によってはファイル名もおかしくなる。
・#BYVARを指定すると、BY変数にラベルがついてても、ラベルではなく変数名が返される。

テクニカルサポートに確認して将来のバージョンで修正するよって回答頂いたんで、現状は#BYVALのみを使うほうがよさそうです。
不具合解消されてたらこの記事に追記できたらと思います。



0 件のコメント:

コメントを投稿