R在矩阵中寻找最近点

R在矩阵中寻找最近点,r,matrix,point,R,Matrix,Point,R:在矩阵中查找点靠近两个选定点的直线 我有一个区域的长/宽矩阵。 我在这个区域有一个点,有经度和纬度,所以我需要在矩阵中找到最匹配的点 我尝试过这个,但它不起作用: find.point <- is.numeric(which(abs(matrix[,1]-East)==min(abs(matrix[,1]-East))) && which(abs(matrix[,2]-North)==min(abs(mat

R:在矩阵中查找点靠近两个选定点的直线

我有一个区域的长/宽矩阵。 我在这个区域有一个点,有经度和纬度,所以我需要在矩阵中找到最匹配的点

我尝试过这个,但它不起作用:

find.point <- is.numeric(which(abs(matrix[,1]-East)==min(abs(matrix[,1]-East))) 
                               && which(abs(matrix[,2]-North)==min(abs(matrix[,2]-North))))

find.point如果没有您提供的具体数据,要准确地帮助您有些困难。但假设您想用欧几里德距离计算最近的点,并且您的数据与下面的数据有些类似,这可能会说明您可以如何做到这一点:

# Create some toy data
set.seed(1)
pos <- matrix(runif(20), 10, 2)
colnames(pos) <- c("lon", "lat")
print(pos)
#             lon       lat
# [1,] 0.26550866 0.2059746
# [2,] 0.37212390 0.1765568
# [3,] 0.57285336 0.6870228
# [4,] 0.90820779 0.3841037
# [5,] 0.20168193 0.7698414
# [6,] 0.89838968 0.4976992
# [7,] 0.94467527 0.7176185
# [8,] 0.66079779 0.9919061
# [9,] 0.62911404 0.3800352
#[10,] 0.06178627 0.7774452

new.pos <- c(0.5, 0.5) # New position

# Compute distance to points and select nearest index
nearest.idx <- which.min(colSums((t(pos) - new.pos)^2))
nearest.idx
#[1] 9

# Pick out the point
pos[nearest.idx, ]
#      lon       lat 
#0.6291140 0.3800352 
#创建一些玩具数据
种子(1)

欢迎使用堆栈溢出。请发布一个可复制的示例以及预期输出。查看更多信息。您需要定义“最近点”(欧几里德距离或
或其他度量的最大差值之和)。计算每个点的距离,然后可以使用
which.min()