2017-06-06 311 views
0

我在Windows 8机器上使用R Studio。我试图插入两点之间的点。r中的插值函数approx()给出错误 - 至少需要两个非NA值插值

x1 = -159.9, y1 = 56.5, 
x2 = -159.9, y2 = 56.3 

我使用以下面的方式approx()功能(可再现的)

approx(c(-159.9,-159.9), c(56.5,56.3), n = 3) 

这给我一个错误

Error in approx(c(-159.9, -159.9), c(56.5, 56.3), n = 3) : 
need at least two non-NA values to interpolate 

及其期待两个非NA值,我已经提供。

该功能完美地工作其他点。这就是问题所在。 如果您遇到任何此类错误,请告诉我您是如何解决这个问题的?

+1

您的x和y坐标错误顺序。 'approx'函数不能插入x坐标相同的值,但是,这正是您目前所做的。 – robbertjan94

+2

您的'x1'和'x2'都是相同的值 – AK88

+0

@ robbertjan94,这似乎是错误的原因。我该怎么处理它,因为我不能简单地改变顺序,因为有时y1和y2也是一样的。 –

回答

1

详细?approx()的:

输入可以包含丢失被删除的值,因此需要至少 两个完整的(X,Y)对(对于方法=“线性”,否则一个 )。如果有重复的(并列)x值并且关系是一个 函数,它将应用于每个不同x值的y值。

+0

那么当x1和x2与我需要在这种情况下插值y值相同时该怎么办? –

+0

继续阅读相同的页面:'在这种情况下有用的功能包括平均值,最小值和最大值。如果tie =“ordered”,则假定x值已经被排序。第一个y值将用于插值到左侧,最后一个用于插值到右侧 – AK88

1

approx函数不能内插x坐标相同的值。

因此,如下我会解决这个问题:

  1. 集团所有,其中的x坐标是相等的,并通过例如中值,平均值它们聚集,或定制功能的情况下
  2. 使用您想要的插值方案,例如approx函数。