2013-10-12 3 views
0

Я пытаюсь создать макрос петли if else в sas для создания манекенов для переменных в большом наборе данных. код я использовал это:if then else loop macro in sas

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) 

она создала УАК age_res1 но условие не получить подразумеваемые

используя знак% с если еще делать напрямую использует условие и не производит точный код, но условие также не выполнялось.

ответ

1

Если быть честным, у меня нет вопроса. Но я нашел одну ошибку в следующей строке:

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

Вы должны заменить одиночные кавычки двойные кавычки, чтобы разрешение макросъемки переменной у.

И вы должны войти в разницу между компиляцией и временем выполнения относительно макрокода. Информация об этой теме можно найти здесь среди других: http://www2.sas.com/proceedings/sugi27/p067-27.pdf