从最接近给定元素的值的向量返回索引

时间:2013-02-19 22:38:34

标签: r

我有一个元素列表,例如

A=
  0.992688
  0.892195
  0.889151
  0.380672
  0.180576
  0.685028
  0.58195

给定一个输入元素,如0.4,如何找到保存最接近此数字的数字的索引。例如,A[4] = 0.380672最接近0.4。因此,它应该返回到4

3 个答案:

答案 0 :(得分:8)

我会使用which.min

which.min(abs(x-0.4))

这会将最接近数字的第一个索引返回到0.4

答案 1 :(得分:7)

单步:

# as mnel points out in his answer, the difference,
# using `which` here gives all indices that match
which(abs(x-0.4) == min(abs(x-0.4)))

其中x是你的向量。

可替换地,

# this one returns the first index, but is SLOW
sort(abs(x-0.4), index.return=T)$ix[1]

答案 2 :(得分:0)

您也可以使用base::findInterval(0.4, x)