繁体   English   中英

按插槽从空间多边形对象中设置多边形子集

[英]Subsetting Polygons from Spatial Polygons object by slot

我有'SpatialPolygons'对象,我想在@hole == FALSE的情况下对多边形进行子集化,并创建一个新对象。

str(my_object)返回以下内容: 我的SpatialPolygons对象的结构输出

使用下面的代码可以一次获取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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM