R中最近的邻居

时间:2015-05-20 08:11:46

标签: r

我有两个数组“F1”和“F2”:

F1 <- c(1,3,4,5)
F2 <- c(6,7,8,9)

我想找到“F1”和“F2”中每个元素的最近邻居。

示例:对于“F1”中的值3,“F1”中的最近邻居为4.并且“F2”中的最近邻居为6.而对于“F2”中的值9,最近邻居为8 ,“F1”中有5个。

1 个答案:

答案 0 :(得分:2)

您可以使用RANN包:

F1 <- c(1,3,4,5)
F2 <- c(6,7,8,9)
require(RANN)
nn2(F1,F2,k = 1)

应产生以下结果:

> nn2(F1,F2,k = 1)
$nn.idx
     [,1]
[1,]    4
[2,]    4
[3,]    4
[4,]    4

$nn.dists
     [,1]
[1,]    1
[2,]    2
[3,]    3
[4,]    4

当然,您可以考虑修改nn2语法以获得更理想的结果。该方法使用ANN库,为您提供了如何找到最近邻居的机会。

我想你可能真的有兴趣找到最接近的匹配。例如,要找到您可以执行的数字6最接近匹配

which(abs(F1-6)==min(abs(F1-6)))

这与识别最近邻居不同。