全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1709 2
2017-11-25
悬赏 10 个论坛币 已解决
想写一个宏,但是老是出现错误:ERROR 124-185: 变量 a 已定义。

%macro cutoff1 (data,low,middle,high,num,varmt1,varmt2);
data &data.1; set &data;
%do i=&low %to &middle;
%do j=&middle %to &high;
lower=i/10;
upper=j/10;
array a(*) &varmt2.1 - &varmt2.#
n=(&i-&low)*(&middle-&low+1)+(&j-&middle-1);
if &varmt1<lower then a(n)=0;
else if &varmt1>=lower and &varmt1<upper then a(n)=1;
else a(n)=2;
%end;%end;
run;
%mend;
%cutoff1 (mt.er,360,380,400,441,ESR1,ESR1_);


求帮助

最佳答案

cheukys 查看完整内容

尝试一下这个,应该是数据多次定义 %macro cutoff1 (data,low,middle,high,num,varmt1,varmt2); data &data.1; set &data; array a(*) &varmt2.1 - &varmt2.# %do i=&low %to &middle; %do j=&middle %to &high; lower=i/10; upper=j/10; n=(&i-&low)*(&middle-&low+1)+(&j-&middle-1); if &varmt1=lower and &varmt1
二维码

扫码加我 拉你入群

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

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

全部回复
2017-11-25 12:30:56
尝试一下这个,应该是数据多次定义
%macro cutoff1 (data,low,middle,high,num,varmt1,varmt2);
data &data.1; set &data;
array a(*) &varmt2.1 - &varmt2.&num;
%do i=&low %to &middle;
%do j=&middle %to &high;
lower=i/10;
upper=j/10;
n=(&i-&low)*(&middle-&low+1)+(&j-&middle-1);
if &varmt1<lower then a(n)=0;
else if &varmt1>=lower and &varmt1<upper then a(n)=1;
else a(n)=2;
%end;%end;
run;
%mend;
%cutoff1 (mt.er,360,380,400,441,ESR1,ESR1_);
二维码

扫码加我 拉你入群

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

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

2017-12-16 13:19:13
感谢大神!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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