R 按槽从空间多边形对象子集多边形

R 按槽从空间多边形对象子集多边形,r,s4,sp,R,S4,Sp,我有“SpatialPolygons”对象,我想将@hole==FALSE的多边形子集,并创建一个新对象 str(my_对象)返回以下内容: 使用下面的代码一次可以得到1个多边形(如果@hole==TRUE,则没有),但是我无法从我的对象中子集多个多边形 newSP <- aDis[aDis@polygons[[1]]@Polygons[[1]]@hole == FALSE] newSP最简单的方法是使用sapply: hasHole <- sapply( aDis@poly

我有“SpatialPolygons”对象,我想将@hole==FALSE的多边形子集,并创建一个新对象

str(my_对象)返回以下内容:

使用下面的代码一次可以得到1个多边形(如果@hole==TRUE,则没有),但是我无法从我的对象中子集多个多边形

newSP <- aDis[aDis@polygons[[1]]@Polygons[[1]]@hole == FALSE]

newSP最简单的方法是使用
sapply

hasHole <- sapply(
  aDis@polygons[[1]]@Polygons,
  slot,
  "hole"
)
aDis@polygons[[1]]@Polygons[!hasHole]

hasHole最简单的方法是使用
sapply

hasHole <- sapply(
  aDis@polygons[[1]]@Polygons,
  slot,
  "hole"
)
aDis@polygons[[1]]@Polygons[!hasHole]

hasHole感谢您的帮助。除了在软件包文档中提供的不推荐使用的函数列表中,似乎没有专门访问插槽的方法。尝试使用该函数时会发出警告/建议直接使用*apply和插槽(与您所做的非常相似)。此外,文件中其他地方关于“孔”槽的讨论表明,它可能只是识别孔的一种半可靠方法。为处理多边形中的孔而提供的大多数其他解决方案都是y形。我喜欢你的解决方案——使用它将帮助我提高对插槽的理解和使用。谢谢。除了在软件包文档中提供的不推荐使用的函数列表中,似乎没有专门访问插槽的方法。尝试使用该函数时会发出警告/建议直接使用*apply和插槽(与您所做的非常相似)。此外,文件中其他地方关于“孔”槽的讨论表明,它可能只是识别孔的一种半可靠方法。为处理多边形中的孔而提供的大多数其他解决方案都是y形。我喜欢您的解决方案--使用它将帮助我提高对插槽的理解和使用。