This post explains how to join two data sets (tables) based on multiple variables (columns) in SAS.
Creating two data sets (tables)
Let's create two SAS datasets for demonstration purposes.
data def; input a b $ d; cards; 123 X 5 441 D 2 ; run; data abc; input a b $ c; cards; 123 A 5 123 B 6 123 X 8 441 C 2 441 D 5 ; run;
Task : Suppose you need to join these two data sets (tables) based on variables a and b.
Method 1 : SQL Joins
The following PROC SQL code performs a SQL join operation between two tables "def" (aliased as "x") and "abc" (aliased as "y") based on the conditions that the columns "a" and "b" are equal in both tables. It creates a table named "xyz".
proc sql noprint;
create table xyz as
select * from
def x left join abc y
on x.a = y.a and x.b = y.b;
quit;
Method 2 : Data Step Merge Statements
The following SAS code uses the merge statement to combine data from two input datasets, "def" and "abc", based on the common variables "a" and "b".
data xyz1;
merge def(in=x) abc(in=Y);
by a b;
if x;
run;
Output
Nice post
ReplyDelete