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!

questionAnswers(5)

yourAnswerToTheQuestion