データが0件のときOUTPUTウィンドウにメッセージを出力する
[OS] ALL
[リリース] 8.2
[キーワード] SAS 8, OUTPUT, PRINT, OBSERVATION NUMBER
[質問]OUTPUTウィンドウへの出力があるプログラムを実行するとき、データが0件だと何も出力されませんが、任意のメッセージを出力するようにできますか? [回答]次のようなプログラムでメッセージを出力できます。下記のサンプルプログラムでは、データのあるデータセットと0件のデータセットを作成し、データが0件のデータセットを処理した際にメッセージを出力するマクロを作成しています。 / * サンプルデータセット1 作成*/ DATA one; x=1; RUN; /* サンプルデータセット2(データ0件) 作成*/ DATA two; STOP; RUN; OPTIONS MPRINT; %MACRO drive(dsn); /* オブザベーション数のカウント */ DATA _null_; CALL SYMPUT('cnt',PUT(cnt,5.)); SET &dsn NOBS=cnt; RUN; /* データがあるとき */ %IF &cnt NE 0 %THEN %DO; PROC PRINT DATA=&dsn; TITLE "データセット名 : &dsn"; run; %END; %ELSE %DO; DATA _null_; /* 0件のとき */ TITLE; FILE PRINT; PUT _page_; PUT "データセット名: &dsn"; PUT "データセットにオブザベーションがありません。"; RUN; %END; %MEND drive; %drive(one) %drive(two) |