ヘルプや配布されているマクロをコピペして実行すると気づかないうちに設定が変わって困ることがあります。
そのため、設定を保存して復元する方法を紹介します。
SASシステムオプションの一時保存と復元
SASシステムオプションの一時保存と復元には、OPTSAVE ProcedureおよびOPTLOAD Procedureを使います。
SASシステムオプションの一時保存と復元
PROC OPTSAVE OUT=sasuser.defaultopts; RUN; /* 保存 */
PROC OPTLOAD DATA=sasuser.defaultopts; RUN; /* 復元 */
この例では、OPTSAVE Procedureでsasuserライブラリにdefaultoptsというデータテーブル名で設定を出力し、OPTLOAD Procedureでsasuserライブラリにあるdefaultoptsというデータテーブルから設定を読み込んでいます。
以下のプログラムで機能を確認します。
テストコード
PROC OPTSAVE OUT=sasuser.defaultopts; RUN; /* 保存 */
PROC SQL;
/* デフォルトでSELECT文の出力は、ラベル表示ON (結果1) */
select * from sashelp.class;
option nolabel; /* ラベル表示OFF */
/* ラベル表示OFFを確認 (結果2) */
select * from sashelp.class;
QUIT;
PROC OPTLOAD DATA=sasuser.defaultopts; RUN; /* 復元 */
PROC SQL;
/* ラベル表示ONに戻ったことを確認 (結果3) */
select * from sashelp.class;
QUIT;
/* ちなみにnolabelだけなら、labelでもとに戻せばOK */
option label; /* ラベル表示ON */
ODS GRAPHICSオプションの一時保存と復元
ODS GRAPHICSオプションの一時保存と復元には、PUSHオプションとPOPオプションを使います。
また、現在の設定を確認するには、SHOWオプションを使います。
ODS GRAPHICSオプションの一時保存と復元
ods graphics/ push; /* 現在の設定を一時保存 */
ods graphics/ pop; /* 一時保存した設定を復元 */
ods graphics/ show; /* 現在の設定をログに出力 */
以下のプログラムで機能を確認します。
テストコード
ods graphics/ show; /* 現在の設定をログに出力(結果1参照) */
ods graphics/ push; /* 現在の設定を一時保存 */
ods graphics/ height=300 width=300; /* グラフの縦横のサイズを変更 */
ods graphics/ show; /* 変更されたことを確認(結果2参照) */
ods graphics/ pop; /* 一時保存した設定を復元 */
ods graphics/ show; /* 復元されたことを確認(結果3参照) */
たとえば、現在の設定は維持したまま、デフォルト設定を確認したいなんてこともできます。
SASプログラム
ods graphics/ push reset=all show; /* 設定を一時保存し、デフォルト設定に変更してログ表示 */
ods graphics/ pop; /* 一時保存した設定を復元 */
/* ちなみにresetとpushを逆にするとデフォルト設定が一時保存されるので注意 */
ods graphics/ reset=all push show;
ヘルプには、「Note: This feature appliesto SAS 9.4M3 and to later releases. 」とありますので、新しい機能みたいですね。
参考
SAS FAQ SASシステムオプションの保存と復元について
SAS9.4 Output Delivery System: User's Guide (ODS GRAPHICS Statement)