2018年6月29日金曜日

【小ネタ】データセットオプション「DROP=」「KEEP=」「RENAME=」の後に変数を指定しなくてもERRORにならない。




以下のように、データセットオプションの「drop=」「keep=」「rename=()」に変数を指定しなくても、ERRORになりません。

data out1;
   set sashelp.class ( drop= keep= rename=() );
run;



変数の指定がないので、これらのデータセットオプションは何もしません。




私はよく以下のような使い方をしています。
%macro test( _drop=, _keep=, _rename= );

    data out1;
      set sashelp.class ( drop=&_drop  keep=&_keep  rename=(&_rename) );
    run;

%mend;




マクロ実行時にdropしたい変数、keepしたい変数、renameしたい変数があれば、それらを指定できるようにし、指定がない場合は何もしない、という分岐を作る事ができます。



たとえば以下を実行すると、drop=, keep=, rename=をしません。

%test( )



以下実行すると、ageをkeepします。

%test( _keep=age )




0 件のコメント:

コメントを投稿