SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 692|回复: 2
打印 上一主题 下一主题

求助:SAS宏中变量引用问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-8-3 16:17:16 | 只看该作者

求助: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 是否相等。

请问,我该怎么修改程序啊?
谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-8-3 16:28:18 | 只看该作者

Re: 求助:SAS宏中变量引用问题

别把IF语句写成宏语句
if &varname = &edu_1 then ...;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-8-3 16:54:31 | 只看该作者

Re: 求助:SAS宏中变量引用问题

搞定了!
谢谢hopewell!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-6 02:19 , Processed in 0.106436 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表