我有一个SAS项目(EGv7.1),允许用户在第一行指定一个值。然后,根据指定的值调用其他进程。其中之一就是分配了一些其他宏变量。下面是我所拥有的,而且似乎没有工作。我真的需要let语句是序列中的第一个,但除此之外,我愿意改变。有什么建议么?SAS宏功能条件宏变量的值
%let number=8;
%macro my_function();
%if &number=8 %then
%do;
%let number_text=eight;
%let number_text_2=equal to eight;
%end;
%if &number>8 %then
%do;
%let number_text=not eight;
%let number_text_2=greater then eight;
%end;
%if &number<8 %then
%do;
%let number_text=not eight;
%let number_text_2=less than eight;
%end;
%mend my_function;
%my_function();
%put =================&number==================;
%put ===========The number is &number_text.=============;
%put =======Furthermore, the number is &number_text_2.========;
虽然你的程序可能比上述更复杂,如果你使用的提示(如您应该如果您在EG是!),你可以通过提示界面做一些这方面,而不是与宏困扰。 – Joe
是的,我同意提示将是更好的方式去这里。我一直在测试提示管理器功能,但需要一个短期解决方案。还是)感谢你的建议。 – pyll