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..
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.