У меня есть два кадра данных, df1 и df2, и они должны быть объединены (объединены) таким образом, чтобы NA в одном df заменялись значениями во втором df на основе некоторых ключевых столбцов и везде, где обнаружен конфликт сообщается в результирующем дф. Например,
> df1 <- data.frame(c1=c("a","b","c"),c2=c(1,2,3),c3=c("m",NA,"k"),c4=c(1,2,NA),c5=c("z1","z2","z3"))
> df2 <- data.frame(c1=c("d","b","c"),c2=c(1,2,3),c3=c("m","j","p"),c4=c(1,NA,8),c5=c("k1","k2","k3"))
> df1
---
c1 c2 c3 c4 c5
a 1 m 1 z1
b 2 NA 2 z2
c 3 k NA z3
> df2
----
c1 c2 c3 c4 c5
d 1 m 1 k1
b 2 j NA k2
c 3 p 8 k3
Я мог бы использовать функцию natural_join
из библиотеки rqdatatable
, чтобы объединить два кадра данных таким образом, чтобы NA в одном df заменялись значениями из другого df. Но я хотел бы сообщить о конфликте, т. Е. Для значения пары ключей, если сообщается о нескольких конфликтующих значениях, то это должно быть частью моего результирующего кадра данных. В идеале мой результирующий кадр данных должен выглядеть следующим образом:
c1 c2 c3 c4 c5 conflicts_cols
a 1 m 1 k1;z1 c5
b 2 j 2 k2;z2 c5
c 3 k;p 8 k3;z3 c3, c5
d 1 m 1 k1 NA
Может ли кто-нибудь помочь в этом? Спасибо!