我有一个元素列表,例如
A=
0.992688
0.892195
0.889151
0.380672
0.180576
0.685028
0.58195
给定一个输入元素,如0.4,如何找到保存最接近此数字的数字的索引。例如,A[4] = 0.380672
最接近0.4。因此,它应该返回到4
答案 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)