BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
cmemtsa
Quartz | Level 8
data T;
input ID L EXP;
Datalines;
1 1 10
1 2 10
1 2 20
1 3 30
2 1 10
2 1 10
2 2 60
3 2 60
3 3 60
;

Hi,

I would to like to update Exp to 0 if for First.ID and L>1 for all instances of this ID (the sorting is done) i.e. the output should be

1 1 10
1 2 10
1 2 20
1 3 30
2 1 10
2 1 10
2 2 60
3 2 0
3 3 0
;

1 ACCEPTED SOLUTION

Accepted Solutions
Ksharp
Super User
data T;
input ID L EXP;
Datalines;
1 1 10
1 2 10
1 2 20
1 3 30
2 1 10
2 1 10
2 2 60
3 2 60
3 3 60
;
data want;
 do until(last.id);
  set t;
  by id;
  if l<=1 then flag=1;
 end;

 do until(last.id);
  set t;
  by id;
  if not flag then exp=0;
  output;
 end;
 drop flag;
 run;

View solution in original post

2 REPLIES 2
Ksharp
Super User
data T;
input ID L EXP;
Datalines;
1 1 10
1 2 10
1 2 20
1 3 30
2 1 10
2 1 10
2 2 60
3 2 60
3 3 60
;
data want;
 do until(last.id);
  set t;
  by id;
  if l<=1 then flag=1;
 end;

 do until(last.id);
  set t;
  by id;
  if not flag then exp=0;
  output;
 end;
 drop flag;
 run;
cmemtsa
Quartz | Level 8

Thank you! It works.