R maptoolsライブラリを使用して、シェープファイルを解析してポリゴンのリストを作成しています。関数readShapeSpatial
shp <- readShapeSpatial("<path to my shapefile>")
私に与えSpatailPolygonDataFrameのオブジェクトを。私の例では、SpatialPolygonsDataFrameに次の列があります。
> names(shp)
[1] "AREA" "PERIMETER" "COMAREA_" "COMAREA_ID" "AREA_NUMBE"
[6] "COMMUNITY" "AREA_NUM_1" "SHAPE_AREA" "SHAPE_LEN
特定のポリゴンをで削除できることを知っていますrow.id
。たとえば、
shp.dropI <- shp[-i, ]
shp.subset <- shp[i %in% c(1,2,3),]
次に、特定のポリゴンを条件付きでドロップしたいとしAREA > 10
ます。これをエレガントに実装するにはどうすればよいですか?私が今持っている唯一の方法は、すべての行を反復処理して対応するを見つけることrow.id
です。
「エリア」属性に注意してください。実際のエリアであるという保証はありませんよね?rgeos :: gArea(x、byid = TRUE)を使用して計算でき、その計算の投影法を変更する必要がある場合はrgdal :: spTransformを使用できます。
—
mdsumner 2016年
@mdsumnerあなたは完全に正しいです。良い点
—
thekingofkings 2016年