我有两个带有几千点的向量,但在这里概括:
A <- c(10, 20, 30, 40, 50)
b <- c(13, 17, 20)
我如何获得
A
的索引最接近 b
?预期的结果是 c(1, 2, 2)
.我知道
findInterval
只能找到第一次出现,而不是最近的,我知道 which.min(abs(b[2] - A))
越来越暖和,但我不知道如何将其矢量化以使用 A
的长矢量和 b
.
最佳答案
你可以把你的代码放在一个sapply中。我认为这与 for 循环具有相同的速度,因此在技术上并未进行矢量化:
sapply(b,function(x)which.min(abs(x - A)))
关于R:找到最近的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10160400/