Кто-нибудь научит меня, как интерполировать и экстраполировать в R. Например, возьмите 2D-фрейм данных с возрастом и соответствующими значениями. Конечным результатом является то, что возраст увеличивается на один год до определенного значения. Возьмите приведенные ниже примеры данных:
df <- data.frame(
age = c(20, 21, 23, 25, 27, 29, 30),
value = c(1.1, 1.2, 1.4, 1.6, 1.8, 2.0, 2.1)
)
Как мне получить кадр данных, в котором есть интерполированные значения с отсутствующим возрастом (например, возраст 22 года == 1,3) и экстраполированные значения для возраста 31–60 лет (либо для линейного, либо для другого метода экстраполяции)?
Конечным результатом является кадр данных с возрастом от 20 до 60 лет, увеличенным на 1, и значениями для каждого возраста.
Я пробовал методы здесь, но не получил хороших результатов: линейная интерполяция в R
Принятое решение не сработало. Я попробовал одно из неприемлемых решений и все время получаю сообщение об ошибке invalid type (list) for variable 'age'
.
Вот что вызвало ошибку:
age2 <- data.frame(31,32,33)
value2 <- data.frame(0,0,0)
df2 <- do.call(rbind, Map(data.frame, age = age2, value = value2))
model.lm <- lm(data=df, value~age)
predict(model.lm, newdata= data.frame(x = age2))
Даже это больше экстраполяция, чем интерполяция.
Я оцениваю результат по результату, который Excel дает по своей линейной функции. См. интерполированные и экстраполированные значения красным цветом. Интерполированные значения выполняются с помощью формулы Excel Значение+(Значение-Следующее значение)/(Строка(значение)-Строка(следующее значение). Когда я изучу R, я хотел бы покончить с Excel. Является ли этот процесс или вывод повторяемым?