Skip to content
Prev 22393 / 29559 Next

keep just one polygon for each element

Leo, here is an approach that might work for you:

library(raster)
library(rgdal)
library(rgeos)
library(plyr)

# create some example data.
p <- shapefile(system.file("external/lux.shp", package="raster"))
p <- p[, 'NAME_1']
p <- aggregate(p, 'NAME_1', dissolve=FALSE)

# now we have 3 regions, each consisting of multiple polygons.
# let's get the largest polygon in each region

p$id1 <- 1:length(p)
pp <- disaggregate(p)
pp$id2 <- 1:length(pp)
pp$area <- gArea(pp, byid=TRUE)

d <- ddply(data.frame(pp), ~id1, function(x){x[which.max(x$area),]})
r <- pp[d$id2, ]


# show the results
plot(pp, col=rainbow(4)[pp$id1])
plot(r, border='blue', add=TRUE, lwd=3)

On Tue, Mar 3, 2015 at 6:15 AM, Leonardo Monasterio
<leonardo.monasterio at gmail.com> wrote: