SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 676|回复: 7
打印 上一主题 下一主题

不知道 为什么这样(var &mvar1 &mvar2 &mvar3 &mvar4;)使用 宏 就是不行呢?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-6-12 10:56:43 | 只看该作者

不知道 为什么这样(var &mvar1 &mvar2 &mvar3 &mvar4;)使用 宏 就是不行呢?

下面是一些问题,请高手们指教啊

%let mydata=prog1.group;
%let mvar1=age;
%let mavr2=height;
%let mvar3=weight;
%let mvar4=pulsevs;
%let mclass=group;

上面的没有问题,但是下面使用会出错:变量 MVAR2 没有找到

&:是地址符号

proc  means  data=&mydata  N  NMISS mean STD min max  median QRANGE;
var &mvar1 &mvar2 &mvar3 &mvar4;
/*var age height weight pulsevs;*/
by &mclass;
run;

改成实际的变量之后,下面一行程序是可以的
proc  means  data=&mydata  N  NMISS mean STD min max  median QRANGE;
var age height weight pulsevs;
by &mclass;
run;


但是如果这样设:
%let variable=age height weight pulsevs;
下面就是可以的

proc  means  data=&mydata  N  NMISS mean STD min max  median QRANGE;
var &variable;
by &mclass;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-6-12 12:52:51 | 只看该作者

Re: 不知道 为什么这样(var &mvar1 &mvar2 &mvar3 &mvar4;)使用 宏 就是不行呢?

大哥,这是“大家来找茬”游戏吗?
[quote:1u1clce6]%let m[color=#FF0000:1u1clce6]av[/color:1u1clce6]r2=height;
var &mvar1 &m[color=#FF0000:1u1clce6]va[/color:1u1clce6]r2 &mvar3 &mvar4;[/quote:1u1clce6]

by the way,看这2字母好想笑
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-6-12 16:04:27 | 只看该作者

Re: 不知道 为什么这样(var &mvar1 &mvar2 &mvar3 &mvar4;)使用 宏 就是不行呢?

<!-- s:? --><img src="{SMILIES_PATH}/icon_confused.gif" alt=":?" title="Confused" /><!-- s:? -->  厉害啊 我们好几个人都没有检查出来
谢谢
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2010-6-12 19:20:22 | 只看该作者

Re: 不知道 为什么这样(var &mvar1 &mvar2 &mvar3 &mvar4;)使用 宏 就是不行呢?

真的厉害,心如发细。我也没有看出来。 <!-- s:shock: --><img src="{SMILIES_PATH}/icon_eek.gif" alt=":shock:" title="Shocked" /><!-- s:shock: -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2010-6-13 08:08:40 | 只看该作者

Re: 不知道 为什么这样(var &mvar1 &mvar2 &mvar3 &mvar4;)使用 宏 就是不行呢?

首先,我在网页上看了一遍,感觉不应该报错呀
然后,复制粘贴到SAS上运行一下,惊讶的发现真的报错了
再然后,打开symbolgen再运行一下,log说除了&amp;mavr2没解析,其他地方都没事,仔细一看,原来是AV惹的祸

结论:在测试阶段,mprint/symbolgen/mlogic/mcompilenote很重要
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2010-6-13 08:19:22 | 只看该作者

Re: 不知道 为什么这样(var &mvar1 &mvar2 &mvar3 &mvar4;)使用 宏 就是不行呢?

想是AV,其实是VA,好沮丧啊。M(美眉)+AV+R(级)还要两个!胃口好大啊。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2011-6-7 16:16:04 | 只看该作者

Re: 不知道 为什么这样(var &mvar1 &mvar2 &mvar3 &mvar4;)使用 宏 就是不行呢?

精彩。。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2011-6-7 18:48:10 | 只看该作者

Re: 不知道 为什么这样(var &mvar1 &mvar2 &mvar3 &mvar4;)使用 宏 就是不行呢?

[quote=&quot;hopewell&quot;:1jfjqtpe]大哥,这是“大家来找茬”游戏吗?
...

by the way,看这2字母好想笑[/quote:1jfjqtpe]

楼主故意的.. <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 05:41 , Processed in 0.087770 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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