楼主: sophiesdaisy
5951 7

[原创博文] 关于宏函数名里面调用宏变量 [推广有奖]

  • 3关注
  • 1粉丝

已卖:509份资源

讲师

41%

还不是VIP/贵宾

-

威望
0
论坛币
4241 个
通用积分
11.1793
学术水平
5 点
热心指数
6 点
信用等级
3 点
经验
11216 点
帖子
423
精华
0
在线时间
456 小时
注册时间
2008-3-4
最后登录
2024-8-21

楼主
sophiesdaisy 发表于 2012-6-13 10:40:49 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
有人知道 如果我想实现宏的名称里有宏变量 以便用宏调用宏该怎么做吗?

具体来说 我有class_1_1(n)、class_1_2(n) class_2_1(n) class_2_2(n)
四个宏函数 我想 用  %class_&&i.&&j.调用是不是可以 呢?

  1. proc sql;
  2. select num1,num2 into:xx,:yy
  3. from quant_class_s;
  4. quit;

  5. %put &xx &yy ;

  6. %class_&xx._&yy.(&l);


  7. %macro class_1_2(l);
  8. data render_1_2.;
  9. set differ_data;
  10. run;
  11. %mend;
复制代码


quant_class_s 如下:

_col0  num1 num2
1         1         2
二维码

扫码加我 拉你入群

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

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

关键词:宏函数 proc sql DIFFER RENDER Select

本帖被以下文库推荐

沙发
可~乐 发表于 2012-6-13 10:50:20
可以这样调用,不过也是要在宏里面调用。。。

藤椅
fengguang163 发表于 2012-6-13 10:50:44
给力!
无限风光在险峰

板凳
sophiesdaisy 发表于 2012-6-13 11:00:39
可~乐 发表于 2012-6-13 10:50
可以这样调用,不过也是要在宏里面调用。。。
原程序是在宏里面 也不行的 &xx &yy 都没能够解析

报纸
hopewell 发表于 2012-6-13 11:07:51
macro variable L 哪来的?
  1. %macro class_1_2(l);
  2.     %put ERROR-%nrbquote(%)&sysmacroname EXECUTED!;
  3. %mend;
  4. data quant_class_s;
  5.     input _col0 num1 num2;
  6. datalines;
  7. 1 1 2
  8. ;
  9. %let l=1;
  10. data _null_;
  11.     set quant_class_s;
  12.     call execute(cats('%class_',num1,'_',num2,'(',&l,')'));
  13. run;
复制代码
观钓颇逾垂钓趣 种花何问看花谁

地板
可~乐 发表于 2012-6-13 11:10:56
sophiesdaisy 发表于 2012-6-13 11:00
原程序是在宏里面 也不行的 &xx &yy 都没能够解析
可以的啊,你看看这个例子,应该是你的宏变量赋值问题吧。。。
  1. %macro test1_1(x);
  2. data test1;
  3. x=&x.;
  4. run;
  5. %mend;

  6. %macro test2_2(x);
  7. data test2;
  8. x=&x.;
  9. run;
  10. %mend;

  11. %macro test;
  12. %do i=1 %to 2;
  13.         %test&i._&i.(&i.);
  14. %end;
  15. %mend;

  16. %test;
复制代码

7
sophiesdaisy 发表于 2012-6-13 13:29:29
hopewell 发表于 2012-6-13 11:07
macro variable L 哪来的?
我这个是一大段程序里面的一部分  本身就在一个宏里面

不过 你这个方法太好了!!!! 非常感谢

8
sophiesdaisy 发表于 2012-6-13 13:47:33
可~乐 发表于 2012-6-13 11:10
可以的啊,你看看这个例子,应该是你的宏变量赋值问题吧。。。
不知道诶~ 反正我得形式和你一样 不能够

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 20:50