プロシジャ出力をアウトプットではなくデータセットに出力する
[OS] ALL
[リリース] SAS System8以降
[キーワード] Base, ODS OUTPUT, ODS EXCLUDE, no display
[質問]プロシジャの出力をデータセットに出力して、アウトプットウィンドウへの表示をしないようにできますか?
[回答]
ODSステートメントを使用して、データセットへの出力とアウトプットウィンドウへの表示を別々に制御できます。
また、ODS EXCLUDE ALLステートメントを使用すれば、アウトプットウィンドウへの表示を抑制できます。
プロシジャによっては、アウトプットウィンドウへの表示を抑制するNOPRINTオプションがサポートされていて、 これを指定した場合、出力データセットは作成されます。しかし、NOPRINTオプションは ODS OUTPUTステートメントと同時には使用できませんのでご注意ください。 下記の例では、CORRESPプロシジャの通常の出力が抑制され、OBSERVEDテーブルがデータセットに出力されます。
/* サンプルデータ */
DATA COLOR;
INPUT region eyes $ hair $ count @@;
DATALINES;
1 blue fair 23 1 blue red 7 1 blue medium 24
1 blue dark 11 1 green fair 19 1 green red 7
1 green medium 18 1 green dark 14 1 brown fair 34
1 brown red 5 1 brown medium 41 1 brown dark 40
1 brown black 3 2 blue fair 46 2 blue red 21
2 blue medium 44 2 blue dark 40 2 blue black 6
2 green fair 50 2 green red 31 2 green medium 37
2 green dark 23 2 brown fair 56 2 brown red 42
2 brown medium 53 2 brown dark 54 2 brown black 13
;
RUN;
/* アウトプット出力の抑制 */
ODS EXCLUDE ALL;
PROC CORRESP DATA=color OBSERVED DIM=1;
TABLE eyes,hair;
ODS OUTPUT OBSERVED=tableout;
RUN;
/* アウトプット出力の選択 */
ODS SELECT ALL;
PROC PRINT DATA=tableout;
RUN;
上記の内容は、米国SAS Institute社のWebサイトに記載されているFAQの日本語訳です。 |
|