有一组数据,想用data过程步进行数据修改,原始数据举例如下:
1 1 a
2 1 b
3 1 a
4 1 a
5 1 a
6 1 b
7 1 a
8 1 b
9 1 a
我像达到的效果是,修改第二列数字,修改规则是:从上向下第三列每出现一个b,第二列就加1,预期目标举例:
1 1 a
2 2 b
3 2 a
4 2 a
5 2 a
6 3 b
7 3 a
8 4 b
9 4 a
试验过下面代码(其中r2,r3分别为第二列和第三列的变量名),不成功:
%global r;
%let r=1;
%macro new;
data temp;
set temp;
r2=&r;
if r3='b' then do;
%let r=%eval(&r+1);
r2=&r;
end;
run;
%mend new;
%new;
失败数据举例如下:
1 1 a
2 2 b
3 1 a
4 1 a
5 1 a
6 2 b
7 1 a
8 2 b
9 1 a
求教各位高手,如何达到我想要的结果,不胜感激,在线等!
![](https://bbs-cdn.datacourse.cn/static/2017/f68.png)