I'm working with two datasets - one set has pairs of items:
original <- data.frame(label1 = c("cat", "cat", "dog", "dog", "cat", "tiger", "tiger", "cow"),
label2 = c("dog", "dog", "cat", "cat", "dog", "cow", "cow", "tiger"))
original
label1 label2
1 cat dog
2 cat dog
3 dog cat
4 dog cat
5 cat dog
6 tiger cow
7 tiger cow
8 cow tiger
the second dataset contains index codes for items from the first set:
index <- data.frame(item = c("cat", "dog", "tiger", "cow"),
code = c(1, 0, 1, 0))
index
item code
1 cat 1
2 dog 0
3 tiger 1
4 cow 0
I'm looking for a way to create two new columns: tag0 and tag1 so that it looks like this:
new <- data.frame(label1 = c("cat", "cat", "dog", "dog", "cat", "tiger", "tiger", "cow"),
label2 = c("dog", "dog", "cat", "cat", "dog", "cow", "cow", "tiger"),
tag1 = c("cat", "cat", "cat", "cat", "cat", "tiger", "tiger", "tiger"),
tag0 = c("dog", "dog", "dog", "dog", "dog", "cow", "cow", "cow"))
new
label1 label2 tag1 tag0
1 cat dog cat dog
2 cat dog cat dog
3 dog cat cat dog
4 dog cat cat dog
5 cat dog cat dog
6 tiger cow tiger cow
7 tiger cow tiger cow
8 cow tiger tiger cow
tag0 refers to the label corresponding to code=0 and tag1 refers to the label corresponding to code=1 in the index dataframe.
Could anyone help me out with a tidyverse based solution?