BookmarkSubscribeRSS Feed
mlogan
Lapis Lazuli | Level 10

Hi All,

Can someone tell me how to get the duplicate value within by group. Thanks,

 

ID     Subject

100   English

100   Math

100   Biology

111   English

111   Biology

111   Math

111   Math

111  Biology

112  Chemistry

112   English

112   Physics

112   Math

112   English

 

Outpu table will be:

 

ID     Subject

111   Biology

111   Biology

112   English

112   English

4 REPLIES 4
Reeza
Super User
proc sort data=have;
by id subject;
run;

data dups;
set have;
by id subject;
if not (first.subject and last.subject) then output;
run;
SAS_inquisitive
Lapis Lazuli | Level 10
proc sort data=have nodupkey dupout=dups;
  by id subject;
run;
Reeza
Super User

Proc Sort identifies one of the duplicate records not both.  

If you want to identify both using PROC SORT use the NOUNIQUEKEY option instead.

 

proc sort data=have nouniquekey out=want;
  by id subject;
run;

proc print data=want;
run;
RW9
Diamond | Level 26 RW9
Diamond | Level 26

Or:

proc sort data=have out=nondups dupout=want nodupkey;
  by id subject;
run;

This will give you a dataset want which has all the duplicate values, you can sort it again nodupkey to get distinct values, also you do:

proc sql;
create table WANT as
select distinct ID,SUBJECT
from HAVE
group by ID,SUBJECT
having count(*) > 1;
quit;

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 1590 views
  • 0 likes
  • 4 in conversation