データセットの存在チェック

[OS]ALL
[リリース] 6.11
[キーワード]

[質問]

DATAステップ、PROCステップの実行前に、SASデータセットまたは外部ファイルの存在チェックを行いたいのですが、可能ですか。

[回答]

SAS 6.11より追加された%SYSFUNCマクロ関数と、EXIST関数やFILEEXIST関数(評価版機能)を組み合わせて使用すると、 SASデータセットまたは外部ファイルの存在チェックを容易に行えます。

  • %SYSFUNCマクロ関数: マクロ使用時に、動的に任意のSAS関数を呼び出すためのSASマクロ関数
  • EXIST関数: SASデータセットの存在チェックを行う
  • FILEEXIST関数: 外部ファイルの存在チェックを行う

以下に使用例を示します。

例1) SASデータセットの存在チェック

%MACRO TEST;
%IF %SYSFUNC(EXIST(SASUSER.CLASS)) %THEN %DO;
  /*  SASデータセットSASUSER.CLASSが存在する場合、戻り値は1 */
  DATA A;
    SET SASUSER.CLASS;
  RUN;
%END;
%MEND;

%TEST;

例2) 外部ファイルの存在チェック

%MACRO TEST;
%IF %SYSFUNC(FILEEXIST(C:\TEST.DAT)) %THEN %DO;
    /* 外部ファイル TEST.DATが存在する場合、戻り値は1 */
  DATA A;
    INFILE 'C:\TEST.DAT';
    INPUT ...... ;
  RUN;
%END;
%MEND;

%TEST;