Следующее решение сначала генерирует ваши уникальные ключи, с помощью которых вы пытаетесь объединить свои наборы данных в общий столбец «информация».Затем, используя объединение влево, добавьте соответствующие столбцы из var1 в df1 и df2, var2 в df1 и df2 и var3 в df3
library(dplyr)
info <- data.frame(info=unique(c(df1$info,df2$info,df3$info)))
var1s <- unique(rbind(df1[,c("info","var1")],df2[,c("info","var1")],df3[,c("info","var1")]))
var2s <- unique(rbind(df1[,c("info","var2")],df2[,c("info","var2")],df3[,c("info","var2")]))
var3s <- unique(df3[,c("info","var3")])
merge(x=info,y=var1s,by="info",all.x=T) %>% merge(y=var2s,by="info",all.x=T) %>% merge(y=var3s,by="info",all.x=T)
Результат:
> merge(x=info,y=var1s,by="info",all.x=T) %>% merge(y=var2s,by="info",all.x=T) %>% merge(y=var3s,by="info",all.x=T)
info var1 var2 var3
1 C001 mytest1 <NA> <NA>
2 C002 mytest2 <NA> <NA>
3 C003 myse1 data1 <NA>
4 C004 <NA> <NA> <NA>
5 C007 where1 India <NA>
6 C010 ohio city <NA>
7 C016 number fifty <NA>
8 C017 city rome ind
9 C022 country India bes
10 C023 number 10 <NA>
11 C027 this there <NA>