Hi,
I am stuck on creating a macro to loop through the values of 2 variables to recode into a new variable.
The logic looks like:
Variable 'Fruit' has values of 'Banana' 'Apple' 'Orange'
Variable 'Status' has values of 'Rotten' 'Fresh'
I would like to create the variable 'Fruit_Status' that is a concatenation of Fruit and Status, with values:
Banana Rotten
Banana Fresh
Apple Rotten
Apple Fresh
etc.
The basic logic where I can write out all combinations is:
IF Fruit="Banana' and Status='Rotten' THEN Fruit_Status=cat(Fruit," ",Status) ;
...
I imagine there is a much more elegant solution.
Thank you for your help!
Cross Join in SQL
proc sql;
create table want as
select a.fruit, b.status, cat(a.fruit, " ", b.status) as fruit_status
from have as a
cross join have as b;
quit;
Cross Join in SQL
proc sql;
create table want as
select a.fruit, b.status, cat(a.fruit, " ", b.status) as fruit_status
from have as a
cross join have as b;
quit;
Sorry ignore this thread..
I feel like such an idiot!
Fruit_Status=cat(Fruit," ",Status) ;
does exactly what i want..
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.