我需要将一个值与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)。
答案 0 :(得分:4)
我们可以从value
的每个元素中减去array
,得到绝对差值,并使用which.min
得到最小值的索引位置。
which.min(abs(array - value))
# [1] 7