将空间权重列表转换为R中的权重矩阵

时间:2015-06-22 12:41:30

标签: r list matrix numeric

在R中,我试图将包含空间权重的列表转换为n×n空间权重矩阵

我在StackOverflow上尝试了不同的建议解决方案,但无济于事(我也相信它们不可能是解决方案,但我不知道如何以不同的方式做到这一点。)

即,当我尝试:

W2 <- as.matrix(W)
W3 <- data.matrix(W)

R将W强制转换为某种矩阵(is.matrix(W)返回&#34; TRUE&#34;),但程序继续将W2和W3视为列表,我不能将它们用作n- by-n矩阵用于提供估计函数(例如 spatialprobit 包中的 sarprobit 函数)。

这是replicable example

你知道这个问题的任何解决方案吗?

1 个答案:

答案 0 :(得分:0)

您应该指定正在使用的软件包,并提供可重现的示例(您的软件不起作用)。我认为你有一个班级的对象&#39; knn&#39;由spdep中的knearneigh函数产生。如果是这样,这里有一个可重现的例子,展示如何获得矩阵;按照spdep中帮助文件中的示例进行操作。

library(spdep)
library(RANN)
example(columbus)
coords <- coordinates(columbus)
col.knn <- knearneigh(coords, k=4)
k <- knn2nb(col.knn)
m <- nb2mat(k)