Desktop productivity for business analysts and programmers

Extracting the last observation

Accepted Solution Solved
Reply
Contributor
Posts: 23
Accepted Solution

Extracting the last observation

Currently I am working with a dataset where each row of data is a birth corresponding to a mother (where the mother is identified by a uniqueid variable). A mother may have multiple births in the dataset but I am only interested in the most recent birth for each mother. The babydob variable is being used since it will help us extract the most recent birth. This is the code I am attempting to use:


PROC SORT data=births;
BY babydob uniqueid;
RUN;

DATA births2;
SET births;
BY babydob;
IF last.babydob;
RUN;

 

When I tested to see if my code worked, I still got some mothers with multiple births on different dates, when I just want the last one.

 

So I got something like this:

 

UniqueID     babydob

001              01/01/2010

001              01/01/2012

001              01/01/2016

002              02/02/2012

 

But what I want is:

 

UniqueID       babydob

001               01/01/2016

002               02/02/2012 

 


Accepted Solutions
Solution
a month ago
PROC Star
Posts: 1,571

Re: Extracting the last observation

[ Edited ]

correction:

PROC SORT data=births;
BY uniqueid babydob ;
RUN;

DATA births2;
SET births;
BY uniqueid babydob ;
IF last.uniqueid ;
RUN;

View solution in original post


All Replies
Solution
a month ago
PROC Star
Posts: 1,571

Re: Extracting the last observation

[ Edited ]

correction:

PROC SORT data=births;
BY uniqueid babydob ;
RUN;

DATA births2;
SET births;
BY uniqueid babydob ;
IF last.uniqueid ;
RUN;
☑ This topic is solved.

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

Discussion stats
  • 1 reply
  • 149 views
  • 0 likes
  • 2 in conversation