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;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.