BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
DavidPhillips2
Rhodochrosite | Level 12

Is there a merge function that combines columns from two datasets while only updating the smaller dataset with the first value of the larger dataset?

 

E.g. Dataset 1

A

B

 

Dataset 2

A orange

A blue

B pink

 

Result dataset

A orange

B pink

1 ACCEPTED SOLUTION

Accepted Solutions
ballardw
Super User

This generates the desired result. I won't promise it is extensible for all cases.

 

 

data work.data1;
   input a $;
datalines;
A
B
;
run;
data work.data2;
   input a $ color $;
datalines;
A orange
A blue
B pink
;
run;

data work.try;
   merge work.data1 work.data2;
   by a;
   if first.a;
run;

View solution in original post

3 REPLIES 3
ballardw
Super User

This generates the desired result. I won't promise it is extensible for all cases.

 

 

data work.data1;
   input a $;
datalines;
A
B
;
run;
data work.data2;
   input a $ color $;
datalines;
A orange
A blue
B pink
;
run;

data work.try;
   merge work.data1 work.data2;
   by a;
   if first.a;
run;
DavidPhillips2
Rhodochrosite | Level 12

Ballardw,

 

Thanks I forgot about first dot.  Happy letters and colors pair up now.

PeterClemmensen
Tourmaline | Level 20

Not sure if this is what you are asking, but this gives the desired output

 

data dataset1;
input var1 $;
datalines;
A
B
;

data dataset2;
input var1 $ var2 $;
datalines;
A orange
A blue
B pink
;

proc sort data = dataset1;
   by var1;
run;

proc sort data = dataset2;
   by var1;
run;

data want;
   merge dataset1 dataset2;
   by var1;
   if first.var1;
run;
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
  • 3 replies
  • 1562 views
  • 0 likes
  • 3 in conversation