R

时间:2018-07-06 19:32:16

标签: r interpolation extrapolation

有人会教我如何在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和每个年龄的值递增。

我在这里尝试过技巧,但没有得到很好的结果: Linear interpolation in 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公式Value +(Value-NextValue)/(Row(value)-Row(next value)完成的。当我学习R时,我想取消excel。此过程或输出是否可重复?

enter image description here

0 个答案:

没有答案