全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4971 5
2012-06-15
%macro repeat;
%do k=1 %to 10;
...
%macro test;
%let temp_data=csm_&k.;
%if temp_data=csm_1 %then %do;
data add;
input q3 count percent;
datalines;
1 0 0
;
run;
data q3;
set add q3;
run;
%end;
%mend;

...
%end;
%mend;

我在macro repeat里面嵌套了几个macro,其中一个是test,但是报错说%let temp_data=csm_&k.;中的k没有解析。这是为什么呢?要怎么办呢?
二维码

扫码加我 拉你入群

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

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

全部回复
2012-6-15 14:18:59
顶一下!!!
二维码

扫码加我 拉你入群

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

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

2012-6-15 18:03:17
不可以引用一个宏变量来对一个新宏变量赋值~~
二维码

扫码加我 拉你入群

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

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

2012-6-15 21:24:20
建议不要在MACRO里嵌套定义MACRO.
二维码

扫码加我 拉你入群

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

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

2012-6-16 18:29:08
你上面的宏明显有逻辑错误,你的第一个%end 在macro test 里没有对应的%do, 你的这个%end 是对应不到外面的那层macro repeat 里的%do 的。建议你改成如下:
%macro repeat;
%do k=1 %to 10;

%macro tt;
%put k=&k;
%mend;
%tt;
%end;

%mend;

%repeat;
二维码

扫码加我 拉你入群

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

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

2012-6-16 20:38:39
建议在外面定义宏,你那个语句是错的
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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