Aslo, this function seems to wipe out my file zipmaps1a <- unionSpatialPolygons(zipmaps1, IDs=paste(zipmaps1$ZCTA, zipmaps1$NAME, sep = " "))
when I run names(zipmaps1a), after I run the above command I get NULL On Wed, Apr 29, 2009 at 12:11 PM, Alina Sheyman <alina...@gmail.com> wrote: > Using examples in Chapter 5, I am trying to get rid of non-unique polygons. > I'm working with a Massachusetts shapefile by zips. The file consists the > following fields > ZCTA NAME LSAD LSAD_TRANS > > I've done the following to get rid of duplicate records > > > zipmaps1_df <- as(zipmaps1, "data.frame") > [!duplicated(zipmaps1$LSAT_TRANS)] > > row.names(zipmaps1_df) <- zipmaps1_df$LSAD_TRANS > > zipmaps1a <- SpatialPolygonsDataFrame(zipmaps1, zipmaps1_df) , > > but get the following error message > Error in SpatialPolygonsDataFrame(zipmaps1, zipmaps1_df) : > row.names of data and Polygons IDs do not match > > > How do I find out what field R is treating as Polygon ID, so that I can set > my row.names to that? > > > > On Wed, Apr 29, 2009 at 2:42 AM, Roger Bivand <roger.biv...@nhh.no> wrote: > >> On Tue, 28 Apr 2009, Alina Sheyman wrote: >> >> I'm trying to combine two shapefiles using >>> zipmaps5 <- spRbind(zipmaps1,zipmaps2) >>> >>> and getting the following error message >>> Error in spRbind(as(obj, "SpatialPolygons"), as(x, "SpatialPolygons")) : >>> non-unique polygon IDs >>> >>> Does anyone know how I can get rid of duplicate polygons in a shapefile? >>> >> >> This isn't the problem. The real problem is that zipmaps1 and zipmaps2 >> have non-unique polygon IDs, so that it isn't obvious to the function what >> you want to do. By default: >> >> sapply(slot(zipmaps1, "polygons"), slot, "ID") >> >> is set to the FID of the shapefile in readOGR() and equivalently in >> readShapeSpatial() in maptools. These typically run 0:(n-1). For two >> objects, they obviously overlap. Please use spChFIDs() methods in maptools >> to assign IDs that are unique for the output object; in the worst case: >> >> zipmaps1 <- spChFIDs(zipmaps1, paste("map1", sapply(slot(zipmaps1, >> "polygons"), slot, "ID"), sep="_")) >> >> and a different "map*" string for zipmaps2 will work, but a unique, >> meaningful ID is best. >> >> This is covered in detail in the code examples for Chapter 5 in our book, >> and on the help page for ?"spChFIDs-methods". >> >> Hope this helps, >> >> Roger >> >> >>> thank you! >>> >>> [[alternative HTML version deleted]] >>> >>> _______________________________________________ >>> R-sig-Geo mailing list >>> R-sig-Geo@stat.math.ethz.ch >>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo >>> >>> >> -- >> Roger Bivand >> Economic Geography Section, Department of Economics, Norwegian School of >> Economics and Business Administration, Helleveien 30, N-5045 Bergen, >> Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43 >> e-mail: roger.biv...@nhh.no >> >> > [[alternative HTML version deleted]] _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo