1

適切なルックアップ テーブル/メタデータを含むものと含まないものを含む、さまざまなソースからデータを取り込むレポート オフィスのために、SAS でフォ​​ーマットを効率的に管理する方法を考えています。

適切なメタデータを持つデータ ソースの場合、値の説明のためにテーブルを結合することは問題なく機能しますが、メタデータが存在せず、個別に維持する必要がある場合、どのように行うべきでしょうか? いくつかの簡単な例/アイデア:

  • 個別に維持される.sasネイティブステップを含むプレーンファイル。PROC FORMAT
  • 個別に管理され、SAS にインポートされてフォーマット ライブラリを作成する外部ファイル (Excel、CSV など)。
  • フォーマット ライブラリを作成するために読み取ることができる、個別に維持されるデータベース テーブル。

書式設定された値だけでなく、値の変更 (特定の値の発効日など) の管理も重要です。

このタイプのタスクに適した慣習や標準に関するヘルプは大歓迎です。

4

1 に答える 1

1

ここに最善の解決策が 1 つあるかどうかはわかりません。環境やユーザーなどに大きく依存します。

かなり初心者のユーザーがいる場合は、可能であれば単一の完全なリポジトリをお勧めします。単一の SAS バージョン/OS/ビットネスを使用している場合は .sas7bcat ファイルであるか、PROC FORMAT に入力するための既製のテーブル/データセット (およびインポートを行うために autoexec に含まれる .sas ファイル) です。これの最大の欠点は、積極的に管理しなければならないこと (たとえば、ユーザーが他のフォーマットを上書きする可能性があるため、マスター フォーマット データセットに独自のフォーマットを書き込むことを許可できないこと) と、フォーマットを保証するための追加の作業が必要になることです。名前は競合しません -またはまたは何か他のものYNF.である可能性があります。また、有効日を簡単に処理することもできません。しかし、これがユーザーにとってより良い可能性があります (そして、ドキュメントを個別に処理するだけです)。1=YES 2=NO1=YES 0=NO

より高度なユーザーがいる場合は、本質的によりリレーショナルなテーブル/データセットを検討できます。ハイブリッド アプローチには、列を含むデータセットが含まれる場合があります。

  1. データセット名 (一意性を確保するために必要に応じて修飾)
  2. フォーマット名
  3. 始める
  4. ラベル
  5. その他の要素 (Type、HLO など)
  6. 発効日

これにより、ユーザーは独自の変更を行うことができ (とにかく、データセット名を適切に追加するのに十分な信頼を置いていると仮定します。または、競合をチェックした一時テーブルからの追加を行うようにストアド プロシージャを設定します)、フォーマット名を処理できるようになります。対立した。必要に応じて、ユーザーが複数のデータセットを使用して処理する方法が必要です (たとえば、「データセット ID」のように、既定でフォーマット名に一意の要素を追加するなど)。

ただし、私の考えでは、データ ディクショナリを使用してメタデータを処理し、自己文書化とメタデータ管理を組み合わせることをお勧めします。上記と同様に、データセットとフォーマット要素を含むテーブルがありますが、ユースケースに応じて、説明テキスト (質問の説明など) やその他の有用な情報用の列を追加します。これは、データベース テーブルまたはデータセットで維持できます。または、プログラマー以外と共有して簡単に編集できる Excel または同様のドキュメントでより便利に維持できます。私はこの方法をいくつかのプロジェクトで使用していますが、ユーザーが私のコードのドキュメントを作成するのを手伝ってくれ、プログラムを正確かつ最新の状態に保ちながら、更新に関する議論を最小限に抑えることができました。スプレッドシートをインポートして、データを実行するたびに proc 形式を実行するだけです。

次に、データセットごとに 1 つのスプレッドシート、1 つのタブ、またはすべてのデータセットを含む 1 つの完全なスプレッドシートのいずれか使いやすい方を使用できます。これにより、「発効日」タイプの問題も簡単に処理できます。また、スプレッドシートで処理できるため、バージョン管理さえも簡単に処理できます。

于 2013-09-05T18:00:51.663 に答える