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..
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.