У меня есть два больших кадра данных. Минимальный воспроизводимый пример их выглядит следующим образом:
A <- data.frame(A=c("a","b","c","d"), B=c(1,2,3,4), C=c(1,2,NA,NA), D=c(1,2,3,4))
A
A B C D
1 a 1 1 1
2 b 2 2 2
3 c 3 NA 3
4 d 4 NA 4
B <- data.frame(A=c("c","d"), B=c(3,4), C=c(3,4))
B
A B C
1 c 3 3
2 d 4 4
Для каждой строки с NA в A у меня есть соответствующая строка в B с заменой отсутствующего значения. Я хотел бы объединить два фрейма данных A и B с «общим» фреймом данных AB таким образом, чтобы NA в фрейме данных A, столбец C были заменены их соответствующими значениями в фрейме данных B, столбец C. Результат должен выглядеть следующим образом:
AB <- data.frame(A=c("a","b","c","d"), B=c(1,2,3,4), C=c(1,2,3,4), D=c(1,2,3,4))
AB
A B C D
1 a 1 1 1
2 b 2 2 2
3 c 3 3 3
4 d 4 4 4
«Самое близкое» (не так близко), которое я получил к решению, было со следующим кодом:
AB <- merge(A,B, all.x = TRUE)
AB
A B C D
1 a 1 1 1
2 b 2 2 2
3 c 3 NA 3
4 d 4 NA 4
, который, очевидно, просто использует переменные из A. Я уже рассмотрел следующие вопросы:
Учтите, что реальные кадры данных намного больше. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Заранее спасибо!