这些宏参数有什么问题?

时间:2015-06-19 17:45:08

标签: sas sas-macro

我正在使用以下简化版本的代码:

%macro test(var);

%if &var = 'Sub Prime' %then %do;
%let var2 = 'Sub_Prime';
%put &var2;
%end;
%mend;

%test(Sub%str( )Prime);

基本上这一点是,如果var ='Sub Prime',那么var2应该='Sub_Prime'。虽然var不等于'Sub Prime'。谁能告诉我我做错了什么?

由于

1 个答案:

答案 0 :(得分:3)

宏变量不使用引号。

%macro test(var);

%if &var = %str(Sub Prime) %then %do;
  %let var2 = Sub_Prime;
  %put &=var2;
%end;
%mend;

%test(Sub%str( )Prime);

最好不要在整个事情中使用%str,而不是仅在空格中插入%str。

%test(%str(Sub Prime));