将值匹配到R中另一个数组中的最近值

时间:2017-07-21 07:34:57

标签: arrays r match

我需要将一个值与R中最接近的相应值匹配并提取其索引。

命令FindInterval(value,array)实现了这一点,但只有在数组按升序排列时才有效。

命令match(value,array)仅在值提供与数组中的值完全匹配时才有效。

例如,

array <- c(0.1,0.5,0.6,0.3,0.9,1.4,0.45)
value <- 0.47

我想要一个命令,然后将其与最近的相应value(此处为0.45)匹配并返回index(此处为7)。

1 个答案:

答案 0 :(得分:4)

我们可以从value的每个元素中减去array,得到绝对差值,并使用which.min得到最小值的索引位置。

which.min(abs(array - value))
# [1] 7