SAS Pros,
I want to create some dummy variables to describe the type of food listed in the lunch variable.
What I have is the variable ID and Lunch. Lunch is a character variable. It includes the food the people have for their lunch. The items included in the Lunch variable is kinda in a non-organized way. You will also see that ID=1 and ID=6 actually have the same food but are listed in the different order. So, how can I create dummy variables protein=1, carbon=1, fiber=1, and juice=1 to represent the lunch they have. Also, can the SAS code treat the Lunch variable as a whole instead of splitting it by its items.
What I want:
ID Lunch Protein Carbon Fiber Juice 1 egg; bread; carrot; 1 1 1 2 cheese; veggie juice; cucumber; 1 1 1 3 noodles; three pieces of pork ribs; lettuce 1 1 1 4 some bread stick; salmon; mango juice 1 1 1 1 5 milk; cookie; tomato; 1 1 1 6 bread; carrot; egg; 1 1 1
Mango juice fall into both fiber and juice.
Right now, I am using the following code:
data want;
set have;
if lunch in ('egg; bread; carrot;', 'cheese; veggie juice; cucumber;', 'noodles; three pieces of pork ribs; lettuce', 'some bread stick; salmon; mango juice', 'milk; cookie; tomato;', 'bread; carrot; egg; ') then protein=1;
else if if lunch in ('egg; bread; carrot;', 'noodles; three pieces of pork ribs; lettuce', 'some bread stick; salmon; mango juice', 'milk; cookie; tomato;', 'bread; carrot; egg; ') then carbon=1;
else if lunch in ('egg; bread; carrot;', 'cheese; veggie juice; cucumber;', 'noodles; three pieces of pork ribs; lettuce', 'some bread stick; salmon; mango juice', 'milk; cookie; tomato;', 'bread; carrot; egg; ') then fiber=1;
else if lunch in ('cheese; veggie juice; cucumber;', 'some bread stick; salmon; mango juice') then juice=1;
run;
But, it seems doesn't generate the correct dummy variables. Could you please help me debug the code or there is some better code I can use?
I really appreciate any kind of help!
Best regards,
C
... View more