1

大きなデータセット内の変数のダミーを作成するために、sas で if else ループ マクロを作成しようとしています。私が使用したコードは次のとおりです。

enter code here



%macro dummy(x,y,z);
data handle;
set handle;
%if &x='&y' %then %do;
&z=1;
%end;
%else %do; 
&z=0;
%end;
run;
%mend dummy;

そして、私はマクロを呼び起こしました

%dummy(age_restriction,02,age_res1)

var age_res1 を作成しましたが、条件は暗示されませんでした

if else do で % 記号を使用すると、条件が直接使用され、正確なコードは生成されませんが、条件も実行されませんでした

4

1 に答える 1

1

正直なところ、私は質問を理解していません。しかし、次の行に 1 つのエラーが見つかりました。

%if &x='&y' %then %do;

マクロ変数 y を解決できるようにするには、一重引用符を二重引用符に置き換える必要があります。

また、マクロ コードに関しては、コンパイル時と実行時の違いを理解する必要があります。このトピックに関する情報は、特にここで見つけることができます: http://www2.sas.com/proceedings/sugi27/p067-27.pdf

于 2013-10-16T15:11:43.290 に答える