Uso de R para insertar un valor para los datos faltantes con un valor de otro marco de datos

Todos,

Tengo una pregunta que me temo que podría ser demasiado pedestre para preguntar aquí, pero buscarla en otro lugar me está desviando. Puede que no esté usando los términos de búsqueda correctos.

Tengo un marco de datos de panel (país-año) en R con algunos valores faltantes en una variable dada. Estoy tratando de imputarlos con el valor de otro vector en otro marco de datos. Aquí hay una ilustración de lo que estoy tratando de hacer.

AsumirData es el marco de datos de interés, que tiene valores faltantes en un vector dado que estoy tratando de imputar de otro marco de datos de donantes. Se parece a esto.

country    year      x
  70       1920    9.234
  70       1921    9.234
  70       1922    9.234
  70       1923    9.234
  70       1924    9.234
  80       1920      NA
  80       1921      NA
  80       1922      NA
  80       1923      NA
  80       1924      NA
  90       1920    7.562
  90       1921    7.562
  90       1922    7.562
  90       1923    7.562
  90       1924    7.562

Este seria elDonor marco, que tiene un valor paracountry == 80

country      x
  70       9.234
  80       1.523
  90       7.562

Estoy tratando de encontrar una manera perfecta de automatizar esto, más allá de un comando deData$x[Data$country == 80] <- 1.523. Hay muchos países con faltantes enx.

Vale la pena aclarar que un simplemerge Sería lo más fácil, pero no necesariamente apropiado para lo que estoy tratando de hacer. Algunos países verán variación enx durante diferentes años Básicamente, lo que estoy tratando de lograr es un comando que dice que si el valor dex falta enData para todos los años para un país determinado, tome el valor correspondiente para el país delDonor datos y pégalos en todos los años del país como una de las "mejores suposiciones".

Gracias por cualquier entrada. Sospecho que esta es una pregunta de novato, pero no sabía los términos correctos para buscarla.

A continuación se muestra un código reproducible para los datos anteriores.

country <- c(70,70,70,70,70,80,80,80,80,80,90,90,90,90,90)
year <- c(1920,1921,1922,1923,1924,1920,1921,1922,1923,1924,1920,1921,1922,1923,1924)
x <- c(9.234,9.234,9.234,9.234,9.234,NA,NA,NA,NA,NA,7.562,7.562,7.562,7.562,7.562)

Data=data.frame(country=country,year=year,x=x)
summary(Data)

country <- c(70,80,90)
x <- c(9.234,1.523,7.562)
Donor=data.frame(country=country,x=x)
summary(Donor)

Respuestas a la pregunta(2)

Su respuesta a la pregunta