## data manipulation using previous and next

Solved
Super Contributor
Posts: 328

# data manipulation using previous and next

id gap
001 0
001 1
001 2
002 0
002 2
002 1
003 0
003 1
003 1
004 0
004 2
004 2
005 0
;

Once gap is a 1 in any position for a particular id, gap=1 for all visit for that particular id.

if gap is 0, 2, without one, then for that id gap=2 for both position ie, we change the 0 to 2.

that above data will Change to:

id gap
001 1
001 1
001 1
002 1
002 1
002 1
003 1
003 1
003 1
004 2
004 2
004 2
005 0
;

Accepted Solutions
Solution
‎06-08-2017 10:45 PM
Super User
Posts: 6,637

## Re: data manipulation using previous and next

Posted in reply to desireatem

This probably comes close enough:

data want;

do until (last.id);

set have;

by id;

if gap=1 then new_gap=1;

else if gap=2 and new_gap=. then new_gap=2;

end;

do until (last.id);

set have;

by id;

if new_gap > . then gap = new_gap;

output;

end;

drop new_gap;

run;

When I say comes "close enough", the program doesn't check for 0 and 2.  It checks for 2 (but without 1).

The top loop reads all the observations for an ID, looking at the GAP values.  Then the bottom loop re-reads the same observations, changes GAP, and outputs.

All Replies
Solution
‎06-08-2017 10:45 PM
Super User
Posts: 6,637

## Re: data manipulation using previous and next

Posted in reply to desireatem

This probably comes close enough:

data want;

do until (last.id);

set have;

by id;

if gap=1 then new_gap=1;

else if gap=2 and new_gap=. then new_gap=2;

end;

do until (last.id);

set have;

by id;

if new_gap > . then gap = new_gap;

output;

end;

drop new_gap;

run;

When I say comes "close enough", the program doesn't check for 0 and 2.  It checks for 2 (but without 1).

The top loop reads all the observations for an ID, looking at the GAP values.  Then the bottom loop re-reads the same observations, changes GAP, and outputs.

Super Contributor
Posts: 328

## Re: data manipulation using previous and next

Posted in reply to Astounding

Thank you very much!!!!

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
• 2 replies
• 185 views
• 0 likes
• 2 in conversation