Hi,
I'm hoping someone will be able to help. I have a dataset of fruit and vegetables. I made a new variable Fruit
which I want to show FALSE
if the other columns do not contain fruits, and TRUE
if they do contain a fruit, and NA if it is from the meat
column.
Where any fruit in a column overrides any veg or meat, any veg overrides meat
fruit>veg>meat
I hope this makes sense. Example of what I have now, what I want it to look like, and the structure of my data below. I know it will require a little manual work (to code veggies as veg, and fruits as fruit)
So I'd like to go from what I currently have:
ID lemon sprout lime apple broccoli grape meat FRUIT
1 aaa <NA> <NA> <NA> apple broccoli grape <NA> NA
2 bbb <NA> sprout <NA> <NA> <NA> <NA> <NA> NA
3 ccc <NA> <NA> <NA> <NA> broccoli grape <NA> NA
4 ddd lemon sprout lime <NA> <NA> <NA> <NA> NA
5 eee lemon <NA> lime apple <NA> grape <NA> NA
6 fff <NA> <NA> <NA> <NA> <NA> <NA> meat NA
to:
ID lemon sprout lime apple broccoli grape meat FRUIT
1 aaa <NA> <NA> <NA> apple broccoli grape <NA> true
2 bbb <NA> sprout <NA> <NA> <NA> <NA> <NA> false
3 ccc <NA> <NA> <NA> <NA> broccoli grape <NA> true
4 ddd lemon sprout lime <NA> <NA> <NA> <NA> true
5 eee lemon <NA> lime apple <NA> grape <NA> true
6 fff <NA> <NA> <NA> <NA> <NA> <NA> meat <NA>
Structure of my data:
dput(df)
structure(list(ID = c("aaa", "bbb", "ccc", "ddd", "eee", "fff"
), lemon = c(NA, NA, NA, "lemon", "lemon", NA), sprout = c(NA,
"sprout", NA, "sprout", NA, NA), lime = c(NA, NA, NA, "lime",
"lime", NA), apple = c("apple", NA, NA, NA, "apple", NA), broccoli = c("broccoli",
NA, "broccoli", NA, NA, NA), grape = c("grape", NA, "grape",
NA, "grape", NA), meat = c(NA, NA, NA, NA, NA, "meat"), FRUIT = c(NA,
NA, NA, NA, NA, NA)), class = "data.frame", row.names = c(NA,
-6L))
Many thanks