BookmarkSubscribeRSS Feed
Dd07
Fluorite | Level 6
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

1 REPLY 1
Astounding
PROC Star

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.

CFC_SAS_Communities_400x225.jpg

Call for content now open!

It's your turn to help shape SAS Innovate 2027. Share your expertise and inspire the SAS community.

Submit your proposal →

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
  • 1 reply
  • 1950 views
  • 0 likes
  • 2 in conversation