2017-01-30 18 views
0

SAS EGを初めて使用しています。実際にプログラムを必要とするのは通常BASE SASですが、私は、アドホックベースで必要なデータを得るためにいくつかのコードでいくつかの領域を手助けしています(コードは変更されません)。SAS EGがデータセット内のすべてのデータセットを出力できないようにする

しかし、処理中に、数か月にわたる反復だけである多くの一時ファイルを作成します。 I.ユーザーが2002年から2016年までのデータを必要とする場合は、すべてのライブラリを取り出して、結果と連結しなければなりません。これはトランザクション量が多いためですが、最終的なデータセットは少数の観測に限られています。しかし、このプログラムを実行すると、SASはマクロ内で作成されたデータセットのうち183個すべてを出力し、非常に醜いものになります。また、「出力データ」が最終データセットから出力されないこともあります。最終出力データセットを検索するのは面倒です。

「出力データ」に書き込まれるデータセットを制限して、最終データセットのみを表示する方法はありますか?エンドユーザーは混乱を心配する必要はありませんか?

enter image description here

上記は一例です - 私が見て気にしない出力データ・セットのトンがあります。私はちょうどそのリストに(どこかに)配置されているファイナルをしたい...

バージョンはSAS E.G. 7.1

答えて

2

EGは、プログラムが終了した後に作成されたすべてのデータセットを常に自動的に表示します。中間テーブルを表示したくない場合は、プロセスの最後のステップで削除してください。

あなたの場合、仮のテーブルがすべて名前TRNを共有しているかのように見えます。

/* Start of process flow */ 

<program statements>; 

/* End of process flow*/ 

proc datasets lib=work nolist nowarn nodetails; 
    delete TRN:; 
quit; 

このようにすると注意してください。すべてのテンポラリテーブルが同じプレフィックス命名方式に従っていることを確認してください。そうしないと、誤って必要なテーブルを削除する可能性があります。

もう1つの解決策は、生成されたデータセットの数を制限し、最終データセットへのユーザー作成のリンクを持つことです。 article about it here.

+0

':'はワイルドカードですか? – DukeLuke

+0

修正。 ':'はSASのワイルドカードのショートカットで、「このプレフィックスに続くすべてを選択してください」と書かれています。 –

0

代替ソリューションは、出力データセットをプロセスフローのエントリとして明示的に追加し、中間データセットから何かを調査する必要がない場合はOUTPUTウィンドウを無視することです。

これは、何か問題が生じた場合に中間データセットを見ることができるという利点がありますが、最後のデータセットを見るためにすべてを調べる必要もありません。

最後に出力されたデータセットを一度簡単に作成したら、それをプロセスフローに追加してから、そのあとで見ることができます。

関連する問題