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
correction:
PROC SORT data=births;
BY uniqueid babydob ;
RUN;
DATA births2;
SET births;
BY uniqueid babydob ;
IF last.uniqueid ;
RUN;
correction:
PROC SORT data=births;
BY uniqueid babydob ;
RUN;
DATA births2;
SET births;
BY uniqueid babydob ;
IF last.uniqueid ;
RUN;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.