Remove duplicates with conditions

Reply
Super Contributor
Posts: 351

Remove duplicates with conditions

 Hello:


I have the sample dataset list below.  I would like to remove the duplicates of "Group" of (100, 200, 300 and 400) if I could find the
same text in the subgroup of 101-199, 201-299, 301-399 or 401-499.   Please help.   Thanks.

 

data test;
      infile datalines dsd;
  input Group Class : $20. Component : $20. Product : $20.;
datalines;
100, ANTI/INSULIN,  ,  ,
100, ANTI/VITA,  ,  ,
100, PHENAZO,  ,  ,
112, ANTI/VITA,  ,  ,
150, PHENAZO,  ,  ,
180, PHENAZO,  ,  ,
181, Large,  ,  ,
200,  ,  HERBS,  ,
200,  ,  PSYCH,   ,
200,  ,  BANZOCAINE,   ,
200,  ,  Large,   ,
210,  ,  SKIN,   ,
270,  ,  HERBS,   ,
280,  ,  BANZOCAINE,   ,
300,  ANTI/INSULIN,   ,  PHENAZO,
300,  ANTI/INSULIN,   ,  ANTI/VITA,
322,  ANTI/INSULIN,   ,  PHENAZO,
377,  ANTI/INSULIN,   ,  Large,
400,  ,   ,  FLOWER,
400,  ,   ,  SUBST,
421,  ,   ,  BANZOCAINE,

422,  ,   ,  FLOWER,
;

 

data final;
      infile datalines dsd;
  input Group Class : $20. Component : $20. Product : $20.;
datalines;
100, ANTI/INSULIN,  ,  ,
112, ANTI/VITA,  ,  ,
150, PHENAZO,  ,  ,
180, PHENAZO,  ,  ,
181, Large,  ,  ,
200,  ,  PSYCH,   ,
200,  ,  Large,   ,
210,  ,  SKIN,   ,
270,  ,  HERBS,   ,
280,  ,  BANZOCAINE,   ,
300,  ANTI/INSULIN,   ,  ANTI/VITA,
322,  ANTI/INSULIN,   ,  PHENAZO,
377,  ANTI/INSULIN,   ,  Large,
400,  ,   ,  SUBST,
421,  ,   ,  BANZOCAINE,

422,  ,   ,  FLOWER,
;

Super User
Posts: 20,716

Re: Remove duplicates with conditions

Please use the code editor to include your code in posts. Otherwise it gets garbled or adds in invisible characters when you try and paste it into SAS Studio.
Trusted Advisor
Posts: 1,633

Re: Remove duplicates with conditions

[ Edited ]

data test;
      infile datalines dsd;
  input  Group_code 1.  @-1  Group 3.  Class : $20. Component : $20. Product : $20.;
datalines;

--- your data ---

; run;

proc sort data=test; by group_code class Component Product ; run;

 

data want;

   set test;

         by group_code class Component Product ;

              if first.Product and last.Product;    /* remove duplicates */

run;

Trusted Advisor
Posts: 1,633

Re: Remove duplicates with conditions

Alternativly to line: 

 input  Group_code 1.  @-1  Group 3.  Class : $20. Component : $20. Product : $20.;

use:

 input   Group  Class : $20. Component : $20. Product : $20.;

group_code = int(group/100);
Ask a Question
Discussion stats
  • 3 replies
  • 133 views
  • 0 likes
  • 3 in conversation