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;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.