如果然后在sas中循环宏

时间:2013-10-12 07:29:45

标签: macros sas-macro

我正在尝试在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直接使用条件并且不生成确切的代码但条件也没有运行

1 个答案:

答案 0 :(得分:1)

说实话,我不明白这个问题。 但我在以下行中发现了一个错误:

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

您必须用双引号替换单引号以允许解析宏变量y。

你应该了解编译和运行时间之间关于宏代码的差异。 有关此主题的信息可在此处找到: http://www2.sas.com/proceedings/sugi27/p067-27.pdf