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;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.