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

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

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

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

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

于 2013-10-16T15:11:43.290 回答