R 按槽从空间多边形对象子集多边形
我有“SpatialPolygons”对象,我想将@hole==FALSE的多边形子集,并创建一个新对象 str(my_对象)返回以下内容: 使用下面的代码一次可以得到1个多边形(如果@hole==TRUE,则没有),但是我无法从我的对象中子集多个多边形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
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形。我喜欢您的解决方案--使用它将帮助我提高对插槽的理解和使用。