全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6279 6
2014-01-23
问题简述:
就是希望在一个宏循环里,通过循环步,引用全局宏变量 macrovar1 marcrovar2 macrovar3...

如下例:
&stage &macrovar1 &marcrovar2 &macrovar3 都是事先定义好的全局宏变量;
用循环步 i = 1 to 10 , j = 1 to 10 总共执行了10*10=100次 %calculate,宏;
&stage是数据集名的前半部分,&i &j 是数据集名的后半部分,每个循环步引用了一个数据集&stage&i&j;
但是用同样的方法引用全局宏变量时,程序无法运行;

也就是说:
%macro circle(from1,to1,from2 to2);
%local i j k;                                                                       
%do i=&from1 %to &to1;
        %do j=&form2 %to &to2;
                %calculate(&stage1,&i,&j,&macrovar1);
        %end;
%end;
%mend circle;
%circle2(1,10,1,10);

可以运行;

%macro circle(from1,to1,from2 to2,from3,to3);
%local i j k;                                                                       
%do i=&from1 %to &to1;
        %do j=&form2 %to &to2;
                %do k=&form3 %to &to3;
                %calculate(&stage,&i,&j,&macrovar&k);
                %end;
        %end;
%end;
%mend circle;
%circle2(1,10,1,10,1,3);

无法运行;

求教解决的办法,方法随意;谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2014-1-23 15:29:20
%calculate(&stage,&i,&,&macrovar.&k);
&macrovar后面加个点试试看
二维码

扫码加我 拉你入群

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

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

2014-1-23 16:02:30
%calculate(&stage,&i,&j,&&macrovar&k);
二维码

扫码加我 拉你入群

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

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

2014-1-23 17:01:15
%calculate(&stage,&i,&j,&macrovar&k);写成%calculate(&stage,&i,&j,&&macrovar&k);
&&macrovar&k第一步解析:&&解析成&,&k解析成1,2,。。。。10,第二步解析&macrovar1 &macrovar2 。。。&macrovar10
二维码

扫码加我 拉你入群

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

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

2014-1-23 17:15:54
dengrong1989 发表于 2014-1-23 15:29
%calculate(&stage,&i,&,&macrovar.&k);
&macrovar后面加个点试试看
8行..
二维码

扫码加我 拉你入群

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

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

2014-1-23 17:28:30
牵你↗左手 发表于 2014-1-23 17:01
%calculate(&stage,&i,&j,&macrovar&k);写成%calculate(&stage,&i,&j,&&macrovar&k);
&&macrovar&k第一步解 ...
正解!!以前瞄到过这个现在才理解是这里用上的!!感激不尽!!
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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