DATA Step, Macro, Functions and more

Macro to recode multiple variables

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 81
Accepted Solution

Macro to recode multiple variables

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!


Accepted Solutions
Solution
‎10-17-2014 11:18 AM
Super User
Posts: 17,963

Re: Macro to recode multiple variables

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;

View solution in original post


All Replies
Solution
‎10-17-2014 11:18 AM
Super User
Posts: 17,963

Re: Macro to recode multiple variables

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;

Frequent Contributor
Posts: 81

Re: Macro to recode multiple variables

Sorry ignore this thread..

I feel like such an idiot!

Fruit_Status=cat(Fruit," ",Status) ;

does exactly what i want..

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 190 views
  • 0 likes
  • 2 in conversation