R:找到最近的索引

标签 r vectorization nearest-neighbor

我有两个带有几千点的向量,但在这里概括:

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/

相关文章:

r - awk 代码根据另一个文件中的匹配条件过滤一个文件中的行

r - 如何将日期和时间四舍五入为以 45 分钟为间隔的日期和时间

c - SSE 中的乘减法

R:分割数据框,将函数应用于每个子集中的所有行对

python - 用莫顿代码找到最近的邻居

r - 在图表上突出显示最短路径

r - 在 R 中的不同 Y 轴上向条形图添加线条

Python,迭代修改df的字典中的DataFrames

machine-learning - KNN算法,测试点成为训练集吗?

python - 学习 : KNeighborsRegressor vs KNeighborsClassifer