全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2583 3
2018-11-19
在学习SAS宏函数,书上有个实例,测试了结果却不对,请大家指导一下究竟是哪里错了?谢谢!

112  %macro test(x,y);                       /*定义SAS宏过程*/
113  %if x>y %then %put %eval(&x-&y);            /*宏过程条件语句的使用*/
114  %else %put %eval(&y-&x);
115  %mend test;
116  %test(2,3);                         /*调用宏过程*/
1
117  %test(8,2);
-6


第一个结果显示1是正确的,第二个结果不该显示6吗?为什么是-6?


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-11-19 14:59:22
%if x>y %then %put %eval(&x-&y);

x 与&x不同 y与&y不同  

%if &x>&y %then ......这样就对了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-11-19 16:00:14
把%if x>y %then %put %eval(&x-&y); 改成&x>&y就可以了。

宏变量的x, y跟变量x, y是不一样的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-11-19 20:32:47
非常感谢两位的精彩回复!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群