I have two data sets with collective ID variables. That is, each of these variable may not be unique across the data set (i.e., duplicated), but together they form a unique set of ID. Suppose the first hypothetical data set looks like:
ID1 ID2 Var1 Var2
Joe A
Joe B
Smith A
Smith C
Ann D
The second hypothetical data set looks like:
ID1 ID2 Var3 Var4
Joe A
Wil B
Smith A
Smith C
Ann E
So how can I merge these variable using data step?
proc sort data=data1;
by ID1 ID2;
run;
proc sort data=data2;
by ID1 ID2;
run;
data want;
merge data1 data2;
by ID1 ID2;
run;
proc sort data=data1;
by ID1 ID2;
run;
proc sort data=data2;
by ID1 ID2;
run;
data want;
merge data1 data2;
by ID1 ID2;
run;
You can also use SQL joins, example:
proc sql;
create table WANT as
select COALESCE(A.MAKE,B.MAKE) as MAKE,
A.MODEL as BASE_MODEL,
B.MODEL as COMP_MODEL
from SASHELP.CARS A
full join SASHELP.CARS B
on A.MAKE=B.MAKE;
quit;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.
Find more tutorials on the SAS Users YouTube channel.