Hi,
I'm struggling combining datasets with unequal observations in SAS. I have dataset A with 8000 observations (containing variables X and Y), and dataset B (containing variable Z) with 9000 observations. Both datasets have a common identifier.
I want to have dataset A, and pull variable Z from dataset B to dataset A (so the dataset will have 8000 obs, with the added variable from dataset B). Does anyone know how to do so?
Thanks in advance!
To merge data sets so that only common id values in both data sets are included in the output you can use the in= data set option which has the value of 1 if the data set contributes to the current observation or 0 if it doesn't. Here is an example
data dataa;
length id $1 x $5 y $6;
infile datalines dlm=",";
input id x y;
datalines;
A,CAT,BLUE
B,DOG,GREEN
C,BIRD,RED
D,FISH,YELLOW
;
run;
data datab;
length id $1 z $7;
infile datalines dlm=",";
input id z;
datalines;
A,USA
B,UK
C,GERMANY
D,CANADA
E,SPAIN
F,ITALY
;
run;
data datac;
merge dataa(in=a) datab(in=b);
by id;
if a and b;
run;
To merge data sets so that only common id values in both data sets are included in the output you can use the in= data set option which has the value of 1 if the data set contributes to the current observation or 0 if it doesn't. Here is an example
data dataa;
length id $1 x $5 y $6;
infile datalines dlm=",";
input id x y;
datalines;
A,CAT,BLUE
B,DOG,GREEN
C,BIRD,RED
D,FISH,YELLOW
;
run;
data datab;
length id $1 z $7;
infile datalines dlm=",";
input id z;
datalines;
A,USA
B,UK
C,GERMANY
D,CANADA
E,SPAIN
F,ITALY
;
run;
data datac;
merge dataa(in=a) datab(in=b);
by id;
if a and b;
run;
Fantastic, it works! Thanks a lot for your reply!
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.