ODS OUTPUTの「PERSIST=オプション」について、2回に分けて詳しく紹介していきます。
まず1回目は「PERSIST=PROC」について。
以下の失敗例をご覧ください。
ODS OUTPUTの中にプロシジャを複数記述したけど、最初のプロシジャの結果しかデータセットに出力されませんでした。
😟失敗例
そこで「PERSIST=PROC」というオプションの出番です。
以下のように、プロシジャ間で出力オブジェクトの名前が一緒であれば(今回の場合は「Moments」)、結合してデータセットに出力することが出来ます。
😄成功例(PERSIST=PROC)
ただし、以下のようにPERSIST=オプションと一緒に「BYステートメント」が使われていると、WARNINGが出て、正しい結果が得られないようです。
😞注意(BYステートメントは使えないっぽい)
ods output Moments (persist=proc) = out1; proc univariate data=sashelp.cars; var msrp; by make; run; proc univariate data=sashelp.cars; var invoice; by make; run; ods output close; --- LOG -------------- WARNING: ODSでは、データセットWORK.OUT1をRUNグループ間で保持できません。BY変数が含まれているからです。データセットは第1 RUNグループが終了すると終了します。 |
To be continued...
https://sas-boubi.blogspot.com/2021/11/ods-outputpersistrun.html
0 件のコメント:
コメントを投稿