Maneira simples de subconjugar SpatialPolygonsDataFrame (ou seja, excluir polígonos) por atributo em R
Gostaria de simplesmente excluir alguns polígonos de um objeto SpatialPolygonsDataFrame com base nos valores de atributo correspondentes no quadro de dados @data para que eu possa plotar um shapefile simplificado / subconjunto. Até agora não encontrei uma maneira de fazer isso.
Por exemplo, digamos que eu queira apagar todos os polígonos destashapefile mundial que tem uma área de menos de 30000. Como eu iria fazer isso?
Ou, da mesma forma, como posso excluir Antartica?
require(maptools)
getinfo.shape("TM_WORLD_BORDERS_SIMPL-0.3.shp")
# Shapefile type: Polygon, (5), # of Shapes: 246
world.map <- readShapeSpatial("TM_WORLD_BORDERS_SIMPL-0.3.shp")
class(world.map)
# [1] "SpatialPolygonsDataFrame"
# attr(,"package")
# [1] "sp"
head(world.map@data)
# FIPS ISO2 ISO3 UN NAME AREA POP2005 REGION SUBREGION LON LAT
# 0 AC AG ATG 28 Antigua and Barbuda 44 83039 19 29 -61.783 17.078
# 1 AG DZ DZA 12 Algeria 238174 32854159 2 15 2.632 28.163
# 2 AJ AZ AZE 31 Azerbaijan 8260 8352021 142 145 47.395 40.430
# 3 AL AL ALB 8 Albania 2740 3153731 150 39 20.068 41.143
# 4 AM AM ARM 51 Armenia 2820 3017661 142 145 44.563 40.534
# 5 AO AO AGO 24 Angola 124670 16095214 2 17 17.544 -12.296
Se eu fizer algo assim, o gráfico não reflete nenhuma alteração.
world.map@data = world.map@data[world.map@data$AREA > 30000,]
plot(world.map)
mesmo resultado se eu fizer isso:
world.map@data = world.map@data[world.map@data$NAME != "Antarctica",]
plot(world.map)
Qualquer ajuda é apreciada!