旧答案:
您可以使用参数dissolve=TRUE
library(raster)
r <- raster(nrow=18, ncol=36)
r[] <- sample(2, ncell(r), replace=TRUE)
pol <- rasterToPolygons(r, dissolve=TRUE)
plot(pol)
新答案
如果你不关心价值观,你可以做这样的事情
您的示例数据
library(raster)
r <- raster(nrow=18, ncol=36)
r[] <- runif(ncell(r)) * 10
r[r>8] <- NA
将您想要的所有值单元格设置为一个值,将所有其他值设置为NA
x <- reclassify(r, rbind(c(-Inf, 6, NA), c(6, Inf, 1)))
pol <- rasterToPolygons(x, dissolve=TRUE)
请注意, pol 现在只有 1 个(多)多边形。如果你想分离非连接部分,你可以做
pols <- disaggregate(pol)
pols
#class : SpatialPolygonsDataFrame
#features : 80
请注意,对角相邻的多边形彼此分开,因为它们不能用于有效的单个多边形(它将是自相交的)。