2

SASデータテーブルをフラットファイル(または、バイナリファイルではなく、一度呼び出された「ASCIIファイル」)に変換する必要があります。また、元のSASテーブルごとに1つのフラットファイルのみ。難しいのは、フラットファイルに元のSASテーブルの構造情報も含めるようにすることです。具体的には次のとおりです。

  • 変数/列名
  • 変数/列ラベル
  • 変数/列タイプ
  • 変数/列の長さ
  • 変数/列形式
  • 変数/列の情報

追加情報:

  • 小さなデータ(<100 obs)を変換するだけで済みます。
  • パフォーマンスは問題ではありません(妥当な制限内)。
  • フラットファイルは、元のSASテーブルを再作成するための基礎を形成する必要があります。DATAまたはPROCステップでファイルをテーブルとして直接使用できる必要はありません。

標準のSASテーブル、トランスポートファイル、XPORTファイルなどはすべてバイナリ形式のファイルであり、SASおよびCSVファイルの標準のXMLテーブル形式はテーブル構造を保持しません。したがって、明らかにこれらのオプションは役に立ちません。

私の最良の選択肢は何ですか?

4

5 に答える 5

4

簡単な解決策を知りません。

おそらく:

  1. PROC EXPORT を使用して、データを含む CSV ファイルを生成します。
  2. ODS で PROC DATASETS を使用して、名前、タイプなどを含むデータセットを生成します。
  3. このデータセット用に別の CSV ファイルを作成します。

これで、テーブルの ASCII 記述が得られました (2 つの CSV ファイルにまたがっています)。プロセスを逆にすると、よりトリッキーになります。基本的には、説明データ セットを読み込んでから、ループ内で CALL SYMPUT を使用して、情報を含む一連のマクロ変数を作成し、マクロ変数を使用して CSV ファイルの PROC IMPORT を作成する必要があります...

于 2008-09-26T04:01:24.480 に答える
3
  1. 表をテキストにエクスポートするコードを作成します(これは簡単です。グーグルで検索するか、コピーがある場合は「The Little SASBook」を参照してください)。

  2. 次に、sashelp.vcolumnからの「メタ」情報を追加します。これは、sasがsasデータセットに関する情報(メタデータ)を格納する場所です。これはsasテーブル自体であるため、proc sql union操作を実行して、このテーブルが記述する実際の列と結合できます(ただし、列に関するメタデータは列ではなく行にあるため、転置型の操作を実行する必要があります) )。

あなたはテキストファイルのメタデータをどのように見たいかについて完全に具体的ではないので、それは私ができる限りです。

于 2008-11-04T13:52:12.680 に答える
2

proc sql の describe 構文は、長さ、型、形式、インデックスなどを含むメタデータ部分を取得するのに便利な場合があります...

コード:

proc sql;
describe table sashelp.class;
quit;

ログ:

NOTE: SQL table SASHELP.CLASS was created like:

create table SASHELP.CLASS( bufsize=4096 )
  (
   Name char(8),
   Sex char(1),
   Age num,
   Height num,
   Weight num
  );
于 2009-02-11T23:53:03.690 に答える
2

SAS 9.2 では、データ セットから XML ファイルを作成できます。XML には、フォーマット、ラベルなどの変数/列のメタデータが含まれています。SAS 9.2 XML LIBNAME Engine: User's Guide の「Using the XML」というタイトルのセクションを参照してください。オペレーティング環境間で SAS データ セットを転送するエンジン」. それへのリンクはここにあります:

http://support.sas.com/documentation/cdl/en/engxml/61740/HTML/default/a002594382.htm

XML92 libname エンジンと PROC COPY を使用して XML を作成する方法を示すマニュアルのコードのセクションを次に示します。

libname myfiles 'SAS-library';
libname trans xml92 'XML-document' xmltype=export;
proc copy in=myfiles out=trans;
   select class;
run;

SAS 9.1.3 では、同じ操作を行うためにカスタム タグセットを作成する必要がある場合があります。SAS テクニカル サポート (support@sas.com) がサポートを提供できる場合があります。

于 2010-02-19T14:52:07.563 に答える
0

ところで-なぜこれを行う必要があるのか​​ 言っていません。この場合、正当な理由はありません (権力者が「やらないとクビになる」など、やむを得ない理由があるかもしれませんが、正当な理由はありません)

信じられないほど強い理由がない限り、各ファイルのメタデータとデータをマージするという考えはあきらめます。データセット A のメタデータを metadata_A というファイルにエクスポートします。これにより、ペアのファイルが作成されます。これらのファイルをデータベース プログラムまたは統計プログラムで使用しようとする人は、明確にラベル付けされたメタデータ ファイルを操作する必要があります。

于 2010-02-18T15:43:53.633 に答える