2017-07-01 9 views
2

ODS出力保つ:SASは、ファイルを.LST抑制が、私は次のコードを使用してSASとPCA分析をしていた

ods output Eigenvectors=PRINCEEV Eigenvalues=PRINCEEVAL; 
proc princomp data=REPLACED PLOTS=SCORE(ELLIPSE NCOMP=5) NOPRINT; 
    id time; 
run; 
ods output close; 

この分析は、生成LSTファイルが大きすぎるので、私はNOPRINTオプションを使用します。しかし、NOPRINTオプションを使用すると、すべてのODS出力も削除されるようです。 (今PRINCEEVとPRINCEEVALはすべて空である):

ERROR: File WORK.PRINCEEVAL.DATA does not exist. 
ERROR: Export unsuccessful. See SAS Log for details. 
259                   putn 

_______ 
                      1 
259  ! ame=YES; run; 
WARNING 1-322: Assuming the symbol PUTNAMES was misspelled as putname. 

ERROR: File WORK.PRINCEEV.DATA does not exist. 
ERROR: Export unsuccessful. See SAS Log for details. 
ERROR: Errors printed on page 1. 

はODS出力に影響を与えずに、LSTファイルの生成を抑制するための方法はありますか?

UPDATE:NOPRINTとODS OUTPUT

あなたは組み合わせることができます。

following sas blogによると、それを行うことは不可能であると思われますか?

SASプログラマは効率を求めています。 NOPRINTオプション がプロシージャをより高速に実行できると読んだ場合、野心的なプログラマは NOPRINTオプションを使用してプロシージャを実行しようとしますが、ODS OUTPUT文を使用して1つのテーブルの結果を取得できます。申し訳ありません、友人、 しかし、あなたはそれを行うことはできません。 NOPRINTオプションは、 が作成されているODSテーブルがないため、テーブルを選択してデータ に保存する方法がないことを意味します。

しかし、ジレンマは、クラウドコンピューティングサーバーのスペースが限られていることです。最初のファイルは私のスペースを無駄にしています。 SASプログラムが外部プロセスで動作しているときにlstファイルを削除すると、SASでio errorが生成されます(すでに試しました)。

とにかくありますか?

ods listing close ; 

ods output Eigenvectors=PRINCEEV Eigenvalues=PRINCEEVAL; 
proc princomp data=REPLACED PLOTS=SCORE(ELLIPSE NCOMP=5) NOPRINT; 
    id time; 
run; 
ods output close; 

これは上場先を閉じますので、正常に動作する必要があります:

答えて

4

は、私がお勧めします。

私はリックを主張し、関連するブログ記事に気づい:

ods exclude _all_ ; 

http://blogs.sas.com/content/iml/2015/05/28/five-reasons-ods-exclude.html

+0

私はODSが近く上場 '置きください;' ODS出力文の上または下に? –

+0

上記。私はこの例を更新しました。 – Quentin

+0

procを実行する前に、リスティング先を閉じてください。 – Tom

関連する問題