SAS中文论坛

标题: 求助:SAS宏中变量引用问题 [打印本页]

作者: shiyiming    时间: 2009-8-3 16:17
标题: 求助:SAS宏中变量引用问题
说明:
现有一张名为table1的数据表,表中有很多变量,需要对每个变量进行相同的处理步骤,故写此宏。
例如,其中一个变量为education,有三个特征值1,2,3,
分别将三个特征值赋给了三个宏变量,即 edu_1 =1, edu_2=2, edu_3=3;


%macro abc(dstname = ,varname= );
    ……       
    edu_1
    edu_2
    edu_3
    ……
    ……
    data TEMP;
        set &dstname;
        %if &varname = &edu_1 %then %do; ……%end;
    run;
%mend;

%abc(dstname =table1 ,varname=education );



当程序运行到上述代码中data步时,日志中提示:
&varname解析成education
&edu_1解析成 1
if语句比较的是 education 和 1 是否相等,
而我的本意是想比较 变量education的取值和1 是否相等。

请问,我该怎么修改程序啊?
谢谢!
作者: shiyiming    时间: 2009-8-3 16:28
标题: Re: 求助:SAS宏中变量引用问题
别把IF语句写成宏语句
if &varname = &edu_1 then ...;
作者: shiyiming    时间: 2009-8-3 16:54
标题: Re: 求助:SAS宏中变量引用问题
搞定了!
谢谢hopewell!




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2