03-21-2017 02:45 PM
Suppose that I had a data set that contained a list of names that contained additional columns that group names based on name type (first, last, or middle) and length (short or long):
How can I create all unique combinations of names from each of the groups by selecting only 1 first name that is either short or long, 1 middle name that is either short or long, and 1 last name that is either short or long? For example:
I thought that proc plan would work but I can't figure out how to do it. Any help would be greatly appreciated.
03-21-2017 03:05 PM
Here's one way:
data have; informat id best4. NameType $6. Length $5. Name $25.; input ID NameType Length Name ; datalines; 1 First Short Jon 2 First Long Alexander 3 Middle Short Todd 4 Middle Long William 5 Last Short Smith 6 Last Long Stephanopoulos ; run; proc sql; create table FirstAndMid as select a.name as firstName, b.name as Middlename,c.name as Lastname from (select name from have where Nametype='First') as a, (select name from have where Nametype='Middle') as b, (select name from have where Nametype='Last') as c ; quit;
Note that I basically ignore the length as you didn't have any duplicate names with different lengths within a type.