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..
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.