Help using Base SAS procedures

Help! How can I find out how to "capture" the 2nd obs. within each group?!

Reply
N/A
Posts: 0

Help! How can I find out how to "capture" the 2nd obs. within each group?!

Ok, so here's my problem...have spent the past 2 hours trying to find the answer, to no avail. I need to find a way to capture/select the SECOND occurrence of a variable (just call it "flag") returning a value of 1...WITHIN each age group. The data has already been sorted by age group (and then by "flag", which is dichotomous, having a value of 1 or 0). I know how to get the first and last value by using FIRST.group and LAST.group, but I can't figure out how to select the second (or third, tenth, etc., you get the idea). Remember that this is not just the second observation of the data set - this is the second occurrence of flag=1 WITHIN each age group. HELP HELP HELP ASAP!!! And thanks a million!
Super User
Posts: 5,256

Re: Help! How can I find out how to "capture" the 2nd obs. within each group?!

If you combine first. and retain I think can get what you want:

data x;
set y;
by z;
retain nGrp;
if first.z then nGrp = 1;
else if nGrp = 2 then output;
nGrp+1;
run;

Am I on the right track?

/Linus
Data never sleeps
Ask a Question
Discussion stats
  • 1 reply
  • 104 views
  • 0 likes
  • 2 in conversation