数据的线性插值

Dan*_*iel 1 r linear-regression

我有一个包含年份 (x) 和相关百分比 (y) 的数据框

data.frame(x = c(1997,2000,2003,2006,2009,2010,2013,2014),
           y = c(.02,.023,.025,.024,.026,.027,.029,.031)
Run Code Online (Sandbox Code Playgroud)

这是该数据框的折线图:

x~y

我想根据线性回归对数据进行插值以获得缺失年份的百分比。

我可以为每条曲线建立一个线性模型,但这会很乏味。

有没有一种简单的方法可以用R来实现?

输入 :

df = data.frame(
  year=c(1997,2000,2003,2006,2009,2010,2013,2014),
  percent=c(0.020, 0.023, 0.025, 0.024, 0.026, 0.027, 0.029, 0.031)
)
Run Code Online (Sandbox Code Playgroud)

输出(对于函数 f):

f(2006)==0.024
f(2007)==0.024.666
f(2008)==0.025.333
f(2009)==0.026
Run Code Online (Sandbox Code Playgroud)

Axe*_*man 5

一种方法是使用线性插值zoo

library(tidyr)
library(zoo)

df_complete <- complete(df, year = full_seq(year, 1))
df_complete$percent <- na.approx(df_complete$percent)


plot(df_complete)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述