我正在尝试在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,但条件没有隐含
使用%sign和if else直接使用条件并且不生成确切的代码但条件也没有运行
答案 0 :(得分:1)
说实话,我不明白这个问题。 但我在以下行中发现了一个错误:
%if &x='&y' %then %do;
您必须用双引号替换单引号以允许解析宏变量y。
你应该了解编译和运行时间之间关于宏代码的差异。 有关此主题的信息可在此处找到: http://www2.sas.com/proceedings/sugi27/p067-27.pdf