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;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.
Find more tutorials on the SAS Users YouTube channel.