複数の外部ファイルのデータを読み込む方法

[OS]ALL
[リリース] 6.07以降
[キーワード] base, data, infile, external, multi, filevar, filename

[質問]

複数の同じフォーマットの外部ファイルからデータを読み込んでSASデータセットを作成する方法を教えてください。

[回答]

INFILEステートメントでFILEVAR=オプションを使用する方法と、FILENAMEステートメントで外部ファイルを連結する方法の2通りの方法があります。
次の3つのファイル(sales93.dat,sales94.dat,sales95.dat)を読み込んで、salesallというSASデータセットを作成する例を紹介します。

    File1 : C:\SALES93.DAT
  --------------------------
     NAME    YEAR  URIAGE
    YOSHIDA   93     8000
    YAMADA    93    15000
    HIROTA    93    40000             SASデータセット : SALESALL
                                      -------------------------
    File2 : C:\SALES94.DAT               NAME    YEAR  URIAGE
  --------------------------            YOSHIDA   93     8000
     NAME    YEAR  URIAGE               YAMADA    93    15000
    YOSHIDA   94    12000               HIROTA    93    40000
    YAMADA    94    50000      ==>      YOSHIDA   94    12000
    HIROTA    94    40000               YAMADA    94    50000
                                        HIROTA    94    40000
    File3 : C:\SALES95.DAT              YOSHIDA   95    10000
  --------------------------            YAMADA    95    38000
     NAME    YEAR  URIAGE               HIROTA    95     8000
    YOSHIDA   95    10000
    YAMADA    95    38000
    HIROTA    95     8000

●INFILEステートメントでFILEVAR=オプションを使用する方法

  data salesall;
    length fname $22;
    input fname $;
    /* ファイル参照名はダミー */
    infile dummy filevar=fname end=end;
    do until(end);
      input name $ year uriage;
      output;
    end;
    cards;
  c:\sales93.dat
  c:\sales94.dat
  c:\sales95.dat
  ;
  run;

●FILENAMEステートメントで外部ファイルを連結する方法
  filename in ('c:\sales93.dat','c:\sales94.dat','c:\sales95.dat');
  data salesall;
    infile in;
    input name $ year uriage;
  run;