R 使用绘图/数据点的斜率计算给定X的Y值

R 使用绘图/数据点的斜率计算给定X的Y值,r,plot,algebra,R,Plot,Algebra,我想知道最简单的方法是什么。 我可以有不同的数据表长度,我想用连接数据点的斜率自动填充缺少的值。我只是不确定以编程方式实现这一点的最简单方法 我想我可以做一些类似的事情,但是我不知道如何应用它,或者是否有一个简单的循环/dplyr/其他函数可以解决这个问题 基本上如果有一个直线图,那么当直线穿过该X/指数值时,每个点会在哪里?这就是我想要的 lm(y~index)$coef[[2]] * index + lm(y~index)$coef[[1]] 两个例子: d

我想知道最简单的方法是什么。 我可以有不同的数据表长度,我想用连接数据点的斜率自动填充缺少的值。我只是不确定以编程方式实现这一点的最简单方法

我想我可以做一些类似的事情,但是我不知道如何应用它,或者是否有一个简单的循环/dplyr/其他函数可以解决这个问题

基本上如果有一个直线图,那么当直线穿过该X/指数值时,每个点会在哪里?这就是我想要的

        lm(y~index)$coef[[2]] * index + lm(y~index)$coef[[1]]
两个例子:

        df = data.frame(index = 1:6, y = c(10,NA,20,NA,NA,2) 
        df2 = data.frame(index = 1:8, y=c(NA,NA,2,NA,NA,NA,NA,18)

     solutions:
 df = data.frame(index = 1:6, y = c(10,15, 20,14,8,2)#slope of 5 and then -6
 df2 = data.frame(index = 1:8, y=c(NA,NA,2,5.2,8.4,11.6,14.8,18) #slope of 3.2

您希望将
approx
与参数
n
一起使用,以指定将发生多少个数据点线性插值。正如您所做的,它要求至少有两个完整的(x,y)对案例


您希望将
approx
与参数
n
一起使用,以指定将发生多少个数据点线性插值。正如您所做的,它要求至少有两个完整的(x,y)对案例


在df2的情况下,如果使用
n
参数,那么
NA
值也将被插值。更好的方法是使用
指定所需的插值点(即.na(df2$y))
然后,在
interp.pts
中保存这些点后,按如下方式替换这些值:
df2$y[interp.pts]@EdwardCarney提出了一个很好的观点,但是,即使您指定了要具体插值的点,端点的插值仍然存在问题。如上文df2中所述,对端点的外推将“受到更大的不确定性和产生无意义结果的更高风险的影响”,正如维基百科关于该主题的条目所建议的那样。此外,数据采样的质量和一个人对“数据行为”的了解在决定是否依赖外推方面发挥了作用。在@scbears88呈现的这种情况下,我倾向于不修改端点(即NA),以提醒自己在估计其值时存在的固有问题。完全同意,我也不会估计域外的NA点。我只是认为它值得一提。在df2的情况下,如果使用
n
参数,那么
NA
值也将被插值。更好的方法是使用
指定所需的插值点(即.na(df2$y))
然后,在
interp.pts
中保存这些点后,按如下方式替换这些值:
df2$y[interp.pts]@EdwardCarney提出了一个很好的观点,但是,即使您指定了要具体插值的点,端点的插值仍然存在问题。如上文df2中所述,对端点的外推将“受到更大的不确定性和产生无意义结果的更高风险的影响”,正如维基百科关于该主题的条目所建议的那样。此外,数据采样的质量和一个人对“数据行为”的了解在决定是否依赖外推方面发挥了作用。在@scbears88呈现的这种情况下,我倾向于不修改端点(即NA),以提醒自己在估计其值时存在的固有问题。完全同意,我也不会估计域外的NA点。我只是觉得值得一提。
data.frame(approx(df, n = nrow(df)))

  x  y
1 1 10
2 2 15
3 3 20
4 4 14
5 5  8
6 6  2