У меня есть шейп-файлы из данных переписи населения США census.gov.
Я прочитал файлы в R с помощью readOGR из библиотеки rdgal.
sp1: избирательный округ - SpatialPolygonsDataFrame
sp2: уровень блока для большей площади и более высокого разрешения, чем sp1 - SpatialPolygonsDataFrame.
Я пробовал использовать gIntersection из библиотеки rgeos, но он не возвращает то, что мне нужно. Или я не могу понять, как его правильно использовать
Как мне извлечь многоугольники с более низким разрешением и связанные данные из sp2, используя sp1 в качестве пространственного ограничения? Другими словами, я хочу знать все блоки внутри sp1, где пересекаются sp1 и sp2.
Текущее рабочее решение
Приведенный ниже код возвращает вектор значений индекса для sp2, где многоугольник имел хотя бы одну точку внутри sp1, но я хотел знать, есть ли более простой способ.
library(rgeos)
result <- vector()
for (i in 1:nrow(sp2)) {
if(gContains(sp1, sp2[i,])) {
result <- c(result, i)
}
}

