Interpolar los valores de NA

Tengo dos conjuntos de muestras que son independientes del tiempo. Me gustaría fusionarlos y calcular los valores faltantes para los momentos en que no tengo valores de ambos. Ejemplo simplificado:

A <- cbind(time=c(10, 20, 30, 40, 50, 60, 70, 80, 90, 100),
           Avalue=c(1, 2, 3, 2, 1, 2, 3, 2, 1, 2))
B <- cbind(time=c(15, 30, 45, 60), Bvalue=c(100, 200, 300, 400))
C <- merge(A,B, all=TRUE)

   time Avalue Bvalue
1    10      1     NA
2    15     NA    100
3    20      2     NA
4    30      3    200
5    40      2     NA
6    45     NA    300
7    50      1     NA
8    60      2    400
9    70      3     NA
10   80      2     NA
11   90      1     NA
12  100      2     NA

Suponiendo un cambio lineal entre cada muestra, es posible calcular los valores de NA que faltan. Intuitivamente, es fácil ver que el valor A en el momento 15 y 45 debe ser 1.5. Pero un cálculo adecuado para B, por ejemplo, en el momento 20 sería

100 + (20-15) * (200-100) / (30-15)

que es igual a 133.33333. El primer paréntesis es el tiempo entre el tiempo estimado y la última muestra disponible. El segundo paréntesis es la diferencia entre las muestras más cercanas. El tercer paréntesis es el tiempo entre las muestras más cercanas.

¿Cómo puedo usar R para calcular los valores de NA?

Respuestas a la pregunta(2)

Su respuesta a la pregunta