此处的新手R程序员...正在寻找有关在SpatialPolygonsDataFrame中的多边形之外构建测试的指导。
我正在对州边界内的点调用quadracount。我想使用自定义多边形来定义四边形,而不是使用默认的网格。具体来说,就是我用shapefile格式创建的县多边形。
我从文档中认为可以从“ owin”对象列表中创建所需的镶嵌。我遇到麻烦的地方是使用SpatialPolygonsDataFrame生成该列表。
我确认可以正确读取多边形:
counties <- readOGR('/path/to/counties.shp', layer = "CountyBoundaries", GDAL1_integer64_policy = FALSE)
for(i in 1:nrow(counties)) {
plot(counties[i,])
}
这将生成一系列地块,每个县一个。当然,这仅对知道我的数据没有损坏并且可以遍历多边形有用。我需要做的是从SpatialPolygonsDataFrame中的每个多边形中提取一个owin,并将其附加到tess(tiles=myList)
的myList中。在这种方法上没有太大的成功。
我强烈怀疑有一种更简单的方法...
非常感谢,
-gt
答案 0 :(得分:0)
结果是,我的问题是无法完全理解R中如何对列表进行索引。以下代码给了我想要的结果。
毫无疑问,有更好的矢量化方法可以做到这一点。但与此同时:
# The point events are in a PPP: StateCrimes_ppp
counties <- readOGR('/path/to/counties.shp', layer = "CountyBoundaries", GDAL1_integer64_policy = FALSE)
tlist <- list()
for(i in 1:nrow(counties)) {
tlist[[i]] <- as(counties[i,], 'owin')
}
QuadCount <- quadratcount(
StateCrimes_ppp,
tess=tess(tiles=tlist)
)
plot(QuadCount, main=NULL)
plot(intensity(QuadCount, image=TRUE), main=NULL, las=1)
如果有人看到我为解决一个简单的问题而花了很长时间的艰苦努力,那么我很想知道一种更好,更简单,更优雅或更像R的方式来实现这一目标。
再次感谢
-gt