R 溶解除形状文件中的一个多边形以外的所有多边形

R 溶解除形状文件中的一个多边形以外的所有多边形,r,shape,spatial,R,Shape,Spatial,我想从形状文件中溶解除一个多边形以外的所有多边形。有办法做到这一点吗 以下是一个可复制的示例: library(rgeos) library(UScensus2000tract) # load data data("oregon.tract") # plot map plot(oregon.tract) #溶解所有多边形 我想这就是你要找的。如果要将域的连续成员合并在一起,则这略有不同,但您所要做的只是从多边形中删除第一个元素(整个状态),然后对其余元素运行gUnaryUnion

我想从形状文件中溶解除一个多边形以外的所有多边形。有办法做到这一点吗

以下是一个可复制的示例:

library(rgeos)
library(UScensus2000tract)

# load data
  data("oregon.tract")

# plot map
  plot(oregon.tract)

#溶解所有多边形

我想这就是你要找的。如果要将域的连续成员合并在一起,则这略有不同,但您所要做的只是从多边形中删除第一个元素(整个状态),然后对其余元素运行gUnaryUnion,然后将连续的域成员重新添加到gUnaryUnion化状态的副本中

oregon = oregon.tract
names(attributes(oregon.tract))
#[1] "bbox"        "proj4string" "polygons"    "plotOrder"   "data"       
#[6] "class"
selected_tract_indices = which(oregon.tract@data$tract == 9501)

oregon <- gUnaryUnion(oregon.tract, id = oregon.tract@data$state)
d = oregon
npolygons = 1
for (selected_tract_index in selected_tract_indices){
d@polygons[[npolygons+1]] = oregon.tract@polygons[[selected_tract_index]]

npolygons = npolygons + 1
d@plotOrder=c(d@plotOrder,as.integer(npolygons))
}

plot(d)
俄勒冈州=俄勒冈州 名称(属性(oregon.tract)) #[1] “bbox”“proj4string”“polygons”“plotOrder”“数据” #[6] “类” 选定的地区指数=哪个(俄勒冈州。tract@data$tract==9501) 俄勒冈州
oregon = oregon.tract
names(attributes(oregon.tract))
#[1] "bbox"        "proj4string" "polygons"    "plotOrder"   "data"       
#[6] "class"
selected_tract_indices = which(oregon.tract@data$tract == 9501)

oregon <- gUnaryUnion(oregon.tract, id = oregon.tract@data$state)
d = oregon
npolygons = 1
for (selected_tract_index in selected_tract_indices){
d@polygons[[npolygons+1]] = oregon.tract@polygons[[selected_tract_index]]

npolygons = npolygons + 1
d@plotOrder=c(d@plotOrder,as.integer(npolygons))
}

plot(d)
# Extract polygon ID's
( did <- sapply(slot(d, "polygons"), function(x) slot(x, "ID")) )

# Create dataframe with correct rownames
( d.df <- data.frame( ID=1:length(d), row.names = did) )    

# Try coersion again and check class
d <- SpatialPolygonsDataFrame(d, d.df)
class(d)