来自 igraph 包的相邻矩阵用于 R 中 ngspatial 包中的自体逻辑模型

Adjacent matrix from igraph package to be used for autologistic model in ngspatial package in R

我对 运行 R 中 ngspatial 包中的自体模型感兴趣。我的数据对象是多边形。通常,多边形的邻接矩阵是根据多边形质心的坐标构建的。但是,我已经根据多边形之间的最小距离标准定义了我的邻接 (0/1),从每个多边形的边界开始测量。我在 arcmap 中完成了此操作,然后使用 igraph 包生成了邻接矩阵:

g<-graph_from_data_frame(My data)

A<-as_adjacency_matrix(g, attr="Dist")

A

42 x 42 sparse Matrix of class "dgCMatrix" [[ suppressing 42 column names ‘1’, ‘2’, ‘3’ ... ]]

我的矩阵只有 0 和 1 值,完全对称 (42 x 42)。

但是,当我尝试在 ngspatial 的自逻辑模型中使用它时,出现错误消息:

ms_autolog<-autologistic(Occupancy~Area, A=A )

'You must supply a numeric and symmetric adjacency matrix'.

我认为 dgCMatrix 只是与 ngspatial 不兼容,但还没有找到如何转换它。我也试过直接将我的 data.csv 文件整形为矩阵,将其作为矩阵读取,但仍然不能被自逻辑模型读取。

有人知道我该如何解决这个问题吗?

非常感谢!

安娜玛丽亚。

如果没有最小的工作示例很难检查这个,但你可以试试这个:

A <- as_adjacency_matrix(g, attr = "Dist", sparse = F)

这样你就可以得到一个包含 0 和 1 的二进制矩阵,而不是一个稀疏矩阵。