Это звучало так, как будто вы делали это позиционирование на квадратной сетке, так что это может быть проще, чем более общий подход к полигонам.Допустим, ваши координаты для этой сетки на квадрате - это два вектора: «xx» и «yy», и у вас есть список точек в data.frame или матрице с именем «mypoints».Это создаст матрицу индексов строк-столбцов для поиска нужного квадрата:
xx <- seq(0,1,by=.1)
yy <- seq(0,1,by=.1)
mypoints <- matrix(runif(10), ncol=2)
head(mypoints)
#---------------
[,1] [,2]
[1,] 0.7731868 0.2707768
[2,] 0.7005779 0.7881789
[3,] 0.9520941 0.6661852
[4,] 0.4625906 0.9176813
[5,] 0.4550811 0.5017386
#---------------
findInterval(mypoints[1:5,1], xx)
#[1] 8 8 10 5 5
findInterval(mypoints[1:5,2], yy)
#[1] 3 8 7 10 6
pointidxs <- matrix( c( findInterval(mypoints[,1], xx),
findInterval(mypoints[,2], yy) ), ncol=2)
head(pointidxs)
#--------------
[,1] [,2]
[1,] 8 3
[2,] 8 8
[3,] 10 7
[4,] 5 10
[5,] 5 6