2016年8月13日土曜日

「FILENAME TEMP」 によるSASプログラムの生成と実行



以下の構文で一時的なファイル参照を作れます。
(ファイル参照が割り当てられている間だけ存在する。)


構文


    FILENAME  ファイル参照名   TEMP ;


📝
LRECLシステムオプションをいじってる場合か、z/OS環境の場合では、FILENAMEステートメントにいくつかオプションを追加しないと挙動が異なるかも。その辺の設定については各自要確認



使用例①

filename TEST temp;

data _NULL_;
    file TEST;
    put "data  A;" ;
    put "run;" ;
run;

%inc TEST / source2;
filename TEST;


filename TEST temp;

まずTESTという名前で一時的なファイル参照を作ります。


data _NULL_;
    file TEST;

一時ファイルを出力先に設定。


    put "data  A;" ;
    put "run;" ;
run;

PUTステートメントで、SASプログラム文 「data A;」 「run;」 を一時ファイルに出力。


%inc TEST / source2;

%INCで一時ファイル内のSASプログラム文を実行。SOURCE2を指定するとログに実行時のプログラム文が出力されます。


filename TEST;

ファイル参照をクリア。



使用例②

data DT1;
    A="AA"; output;
    A="BB"; output;
    A="CC"; output;
run;

  A  
  AA  
  BB
  CC

filename TEST temp;
data _NULL_;
    file TEST;
    set DT1;
    put "data " A "; run;" ;
run;

%inc TEST / source2;
filename TEST;

変数Aの値を使って以下のSASプログラムを生成しています。

data AA; run;
data BB; run;
data CC; run;


単純な例ですが、色々出来そうな事が分かると思います。

0 件のコメント:

コメントを投稿