data have;
input id Cd $ flg $ DATE1 DATE9. ;
format date1 date9.;
datalines;
11 chg b 13apr2019
11 chg i 11apr2019
12 chg e 6may2017
13 chg b 5jun2019
14 add d 4mar2019
14 chg y 1jan2019
;run;
I want to eliminate all rows where the number of rows per id is more than 1. So In this example I would eliminate 11 and 14 and only keep 12 and 13. Using a proc sort nodupkey would not work in this case.
So only keep the IDs that do NOT have multiple rows?
data want;
set have;
by id;
if first.id and last.id;
run;
data have;
input id Cd $ flg $ DATE1 DATE9. ;
format date1 date9.;
datalines;
11 chg b 13apr2019
11 chg i 11apr2019
12 chg e 6may2017
13 chg b 5jun2019
14 add d 4mar2019
14 chg y 1jan2019
;
proc sort data=have nouniquekeys uniqueout=singles ;
by id;
run;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.