我需要从一个空间多边形创建一个邻居列表。目前我正在使用函数poly2nb,但不幸的是它不是很精确,而且一些没有共同点的多边形被认为是相邻的。我尝试过改变snap的论点,但没有运气。不过,我尝试了来自rgeos包的函数rgeos,它的工作性能要好得多。唯一的问题是,它创建了一个不能在list中使用的spdep对象。有任何方法将其转换为nb对象吗?
(预先多谢!)
发布于 2022-11-17 03:30:40
查看tri2nb函数https://rdrr.io/cran/spdep/src/R/tri2nb.R的源代码,我知道它是一个与您提到的不同的函数,您可以将list更改为nb类型:
class(yourlist) <- "nb"
举个例子:
mylist <- list(A = c(1,2,5,6), B = c(2,4,6,5))
class(mylist) #check the class of mylist初步结果:
> class(mylist)
[1] "list"将mylist类分配为nb。
class(mylist) <- "nb"
class(mylist) #check the class of mylist最终结果:
> class(mylist)
[1] "nb"由此,您可以继续使用spdep中的函数来选择最优的空间加权矩阵。
https://stackoverflow.com/questions/68672915
复制相似问题