SAS Data Integration Studio, DataFlux Data Management Studio, SAS/ACCESS, SAS Data Loader for Hadoop and others

data manipulation using previous and next

Accepted Solution Solved
Reply
Super Contributor
Posts: 297
Accepted Solution

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: 5,081

Re: data manipulation using previous and next

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.

View solution in original post


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

Re: data manipulation using previous and next

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: 297

Re: data manipulation using previous and next

Thank you very much!!!!

☑ This topic is SOLVED.

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

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