У меня есть два набора выборок, которые не зависят от времени. Я хотел бы объединить их и вычислить недостающие значения для тех случаев, когда у меня нет значений обоих. Упрощенный пример:
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
Предполагая линейное изменение между каждым образцом, можно вычислить недостающие значения NA. Интуитивно легко видеть, что значение А в моменты времени 15 и 45 должно составлять 1,5. Но правильный расчет для B например, в момент времени 20 было бы
100 + (20 - 15) * (200 - 100)/(30 - 15)
что равно 133.33333. Первая скобка - это время между временем оценки и доступным последним образцом. Вторая скобка - это разница между ближайшими выборками. Третья скобка - это время между ближайшими выборками.
Как я могу использовать R для вычисления значений NA?