在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 函数)。
你知道这个问题的任何解决方案吗?
答案 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)