The following example best speaks for itself.
I would like to get the "desired" outcome.
Any efficient R way to do it is welcome.
df1 = data.frame(id = c(1:6), feature1 = c("class1", "class2", "class3", "class4", "class5", "class6"))
df2 = data.frame(id = c(2, 2, 2, 4, 6), feature2 = c("a", "b", "c", "d", "e"))
desired <- data.frame(id = c(2, 2, 2, 4, 6), feature2 = c("a", "b", "c", "d", "e"), feature1 = c(rep("class2", 3), "class4", "class6"))
> df1
id feature1
1 1 class1
2 2 class2
3 3 class3
4 4 class4
5 5 class5
6 6 class6
> df2
id feature2
1 2 a
2 2 b
3 2 c
4 4 d
5 6 e
> desired
id feature2 feature1
1 2 a class2
2 2 b class2
3 2 c class2
4 4 d class4
5 6 e class6