[英]Subsetting Polygons from Spatial Polygons object by slot
我有'SpatialPolygons'对象,我想在@hole == FALSE的情况下对多边形进行子集化,并创建一个新对象。
使用下面的代码可以一次获取1个多边形(如果@hole == TRUE,则一次不获取),但是我无法从我的对象中子集多个多边形。
newSP <- aDis[aDis@polygons[[1]]@Polygons[[1]]@hole == FALSE]
我认为我的问题在于我不知道如何“一般”地引用第二个列表,即从list(Polygon)中获取@hole == FALSE的项目。 将第二个[[]]留空不起作用。
PS对不起,没有可复制的示例; 我不确定确切如何以简单的方式重现此问题。
最简单的方法是使用sapply
:
hasHole <- sapply(
aDis@polygons[[1]]@Polygons,
slot,
"hole"
)
aDis@polygons[[1]]@Polygons[!hasHole]
但是,最终用户不得不诉诸这种情况是不寻常的。 我对这个特定的软件包不熟悉---是否在其中其他地方没有定义可帮助您访问这些插槽的功能?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.