BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
SASPreK
Fluorite | Level 6

I have the following input dataset

 

ID   Var1    Var2

11       A          23

11       B          121

11       A          23

12      A          32

12      B           158

12      A           32

12      B           158

13      A            87

13      B            567

 

I want to remove the repetitive records by ID variable and get the following output.

 

ID   Var1    Var2

11       A          23

11       B          121

12      A          32

12      B           158

13      A            87

13      B            567

 

Please suggest the best way to do it.

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
ballardw
Super User

Not possible. SAS will not allow two variables with the same name.

If the third column is VAR2:

data have;
   input ID   Var1 $   Var2 ;
datalines;
11       A          23
11       B          121
11       A          23
12      A          32
12      B           158
12      A           32
12      B           158
13      A            87
13      B            567
;

Then easiest code is:

proc sort data=have out=want nodupkey;
   by id var1 var2;
run;

The NODUPKEY option tells SAS to sort the data but only allow one observation with each combination of the BY variables in the OUT= data set.

 

There are options to send the deleted observations to a different output set.

View solution in original post

2 REPLIES 2
ballardw
Super User

Not possible. SAS will not allow two variables with the same name.

If the third column is VAR2:

data have;
   input ID   Var1 $   Var2 ;
datalines;
11       A          23
11       B          121
11       A          23
12      A          32
12      B           158
12      A           32
12      B           158
13      A            87
13      B            567
;

Then easiest code is:

proc sort data=have out=want nodupkey;
   by id var1 var2;
run;

The NODUPKEY option tells SAS to sort the data but only allow one observation with each combination of the BY variables in the OUT= data set.

 

There are options to send the deleted observations to a different output set.

SASPreK
Fluorite | Level 6
Thank you so much for the solution, this works! I have edited my question to name the variables as Var1 and Var2, thank you for catching that 🙂
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
  • 2 replies
  • 1041 views
  • 1 like
  • 2 in conversation