全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4691 4
2010-05-06
比如我有如下宏:

%macro abc(x);
%do i = 1 %to 20 by 4;
...
%end;
%mend abc;

现在想利用宏参数动态地修改循环步长(原来是4),请问应该用什么语法?
二维码

扫码加我 拉你入群

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

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

全部回复
2010-5-6 13:09:05
%let t=4;
%macro abc(x);
%do i = 1 %to 20 by &t;
...
%end;
%mend abc;
二维码

扫码加我 拉你入群

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

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

2010-5-6 13:24:26
%macro abc(x,t);
%do i = 1 %to 20 by &t;
...
%end;
%mend abc;

不知道楼主是不是这个意思
还是循环一遍之后又改变步长呢?
你可以考虑加一个外循环,让步长自动增长
二维码

扫码加我 拉你入群

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

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

2010-5-7 04:27:15
1# warrenzhang

It is impossible because %BY-defined increment is evaluated prior to the first iteration of the loop. Thus, you cannot change it as the loop iterates.
Of course you can do like that:
复制代码


Here the step has to be constant.
二维码

扫码加我 拉你入群

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

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

2010-5-7 11:38:45
长知识了。谢谢楼上几位!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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