## Creating a Cartesian Product in SAS

Here’s the first of several question/answer posts.

Feel free to write me with your SAS question and I’ll provide the answer in a post.

# Question

Suppose I have two SAS datasets, set A contains 5 variables having 3000 unique records and set B contains just 1 variable having 500 unique records (just a bunch of ID numbers). Suppose I would like to create a new dataset where each of the records from set A would be duplicated so that the first record would be repeated 500 times where each of those would be paired with a unique ID from set B. The goal is to have the new dataset with 6 variables (the five from A and the one from B) containing a total of 1,500,000 records produced in this way.

Any help or suggestions you can provide is greatly appreciated.

# Answer

What you are asking for is called a Cartesian Product. All possible combination of rows in all tables.

This can be accomplished with the following SAS code

PROC SQL noprint;

Create Table <new data set> as

select *

from <data set A>, <data set B>;

quit ;

I dont know this things. Thanks