Interpolar valores de NA

Tenho dois conjuntos de amostras que são independentes do tempo. Gostaria de mesclá-los e calcular os valores ausentes para os horários em que não tenho valores de ambos. Exemplo 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

Ao assumir uma mudança linear entre cada amostra, é possível calcular os valores de NA ausentes. Intuitivamente, é fácil ver que o valor A nos tempos 15 e 45 deve ser 1,5. Mas um cálculo adequado para B, por exemplo, no tempo 20, seria

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

qual é igual a 133.33333. O primeiro parêntese é o tempo entre o tempo estimado e a última amostra disponível. O segundo parêntese é a diferença entre as amostras mais próximas. O terceiro parêntese é o tempo entre as amostras mais próxima

Como posso usar R para calcular os valores de N

questionAnswers(2)

yourAnswerToTheQuestion