У меня есть пространственный файл в R, который содержит все единицы площади для Новой Зеландии. Я скачал его в формате NZGD2000. В этом файле у меня есть нерелевантные детали географии c, такие как регионы Океани c. Мне удалось удалить их из моих данных, просто удалив те многоугольники, которые превышают определенное значение.
library("dplyr")
library("rgdal")
library("rgeos")
NZAreas <- readOGR("[FILEPATH]/area-unit-2013.shp")
#remove the areas that are offshore
NZAreas@data$AU2013_V1_ <- as.numeric(as.character(NZAreas@data$AU2013_V1_))
NZAreas <- NZAreas[NZAreas@data$AU2013_V1_ < 614000,]
У меня проблема в том, что в единицах площади находятся входные и внутренние воды. Я не могу удалить их так же, как я удалил прибрежные единицы, так как значения единиц площади не являются случайными. @data$$AU2013_V_1
содержит метки для единиц измерения площади. Все единицы измерения площади, которые я хочу удалить sh, имеют метку, начинающуюся с "Inlet" или "Inland Water".
Я не могу понять, как удалить эти полигоны из данных. Сначала я попытался без имени кадра данных перед @data
:
NZAreas <- NZAreas[!grepl("Inlet", @data$AU2013_V_1),]
Error: unexpected '@' in "NZAreas <- NZAreas[!grepl("Inlet", @"
, а затем попытался:
NZAreas <- NZAreas[!grepl("Inlet", NZAreas@data$AU2013_V_1),]
Этот второй код выполняется, но не удаляет многоугольники; похоже, он ничего не делает с Large SpatialPolygonDataFrame
. Я проверил построенный на NZAreas
фрейм данных, и там есть ряды Inlet и Inland Water. Как мне удалить эти полигоны?