データセットの存在を確認するスポンサーリンクtips(SAS)2020.06.152020.08.18call symput とexist関数を利用して解決できます。ここではそれを利用して特定のデータセットの存在を確認し、その結果によって処理を分岐させる処理をしています。スポンサーリンク以下のような処理をしています。 1.データセット”ds”が存在しない → データセット”ds”を作成する 2.データセット”ds”が存在する → ログにメッセージを出力する1.データセットが存在しないときdata _NULL_; call symput("exist_check", strip(put(exist("ds"),best.))); run; %macro test(); %if &exist_check. = 0 %then %do; data ds; TMP_COLUMN = "N/A"; run; %end; %else %if &exist_check. = 1 %then %do; %put Exist already; %end; %mend; %test();解説call symput データセット”ds”がないとき → マクロ変数 “exist_check” = 0 が入る。データセット”ds”があるとき → マクロ変数 “exist_check” = 1 が入る。macro test()exist_check = 0 のとき → データセット”ds”を作成する。exist_check = 1 のとき → ログにメッセージ”Exist already”を出力する。この例ではデータセット”ds”を作成しています。workに何もない状態からスタートします。1.の結果作成されました。内容もロジックどおりの変数と値が作成されています。2.データセットが存在するとき事前にデータセットを作っておきます。その他は同じです。data ds; a = 1; run; data _NULL_; call symput("exist_check", strip(put(exist("ds"),best.))); run; %macro test(); %if &exist_check. = 0 %then %do; data ds; TMP_COLUMN = "N/A"; run; %end; %else %if &exist_check. = 1 %then %do; %put Exist already; %end; %mend; %test();この例ではログにメッセージ”Exist already”を出力しています。事前に作成したデータセットです。2.の結果ログに”Exist already”が出力されています。
コメント