楼主: sophiesdaisy
2161 2

关于宏放在循环中的问题。 [推广有奖]

  • 3关注
  • 1粉丝

已卖:509份资源

讲师

41%

还不是VIP/贵宾

-

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

楼主
sophiesdaisy 发表于 2012-5-22 08:52:10 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
  1. %macro makedata2(nrow,ncol,n);

  2. data wanttoo;
  3. %do i=1 %to &nrow;
  4. %do j=1 %to &ncol;
  5. %let ii=%eval(&i+1);
  6. %getc(&j) ;
  7. %length value&j. $ 50;
  8. value&j.="=&character.&ii.";
  9. %end;
  10. %end;
  11. run;

  12. data history_values_&n.;
  13. set wanttoo ;
  14. run;

  15. %mend makedata2;

  16. %macro getc(j);
  17. proc sql;
  18. select _col1
  19. into :character
  20. from fund.ntocharacters
  21. where (_col0=%eval(&j+2));
  22. quit;
  23. %mend getc;

  24. %makedata2(509,20,1);
复制代码
这段程序是想给一个数据集wanttoo赋值,赋值是按照一定的规律,然后再把得到的数据集set给另外一系列数据集,但是我这边运行的时候总出错:
下面是报错:

NOTE: 由宏变量“J”生成行。
1                                          3
                                           -
                                           180
WARNING: 没有解析符号引用 CHARACTER。
WARNING: 没有解析符号引用 CHARACTER。
ERROR: 宏函数名后没有找到期望的左括号。


不太清楚是怎么回事,好像和宏放在循环里有关,求帮助~

二维码

扫码加我 拉你入群

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

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

关键词:Characters Character proc sql warning History character where 程序

沙发
bluebluestar 发表于 2012-5-23 16:31:25
信息看不全,猜测i和j不是宏变量,应该在使用前申明,比如%local i;%local j;等,先试一下吧。
求币^^^^^^

藤椅
sophiesdaisy 发表于 2012-5-23 17:05:59
bluebluestar 发表于 2012-5-23 16:31
信息看不全,猜测i和j不是宏变量,应该在使用前申明,比如%local i;%local j;等,先试一下吧。
谢谢 ,已经解决了,不过不是您说的问题~

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

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