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;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.