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..
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!
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.
Ready to level-up your skills? Choose your own adventure.