DATA Step, Macro, Functions and more

Merge issue for many to one

Reply
Contributor
Posts: 35

Merge issue for many to one

Hello All,

I have two dataset with same variables
Name class subject
Cc class2 a2
Dd class1
Dd class1
Dd class1
≠==============
Second dataset
Name class subject
Dd class1 d1
Cc class2 c2

===========
After sorting by name and class for both dataset
Using below syntax
Data final
Set new (in=a) new1
By name
If a

=======
I am getting
Cc class2 c2
Dd class1 d1
Dd class1
Dd class1
===============
However I require like

Cc class2 c2
Dd class1 d1
Dd class1 d1
Dd class1 d1

Please suggest and thanks

Super User
Posts: 5,099

Re: Merge issue for many to one

I'm assuming you actually used semicolons to end your statements, and you merged using a MERGE statement rather than a SET statement.

 

The basic problem is that you have a common variable, SUBJECT, in both data sets.  There are a couple of ways to deal with that.  To ignore all SUBJECT values in one data set, you could just drop it:

 

data final;

merge new (drop=subject in=a) new1;

by name class;

if a;

run;

 

I would assume you are merging by both variables, and not just by NAME.

 

The problem gets a little more complex if you need to compare the SUBJECT values in the two data sets, to see which you want to use.

 

Good luck.

Ask a Question
Discussion stats
  • 1 reply
  • 153 views
  • 0 likes
  • 2 in conversation