我一直试图弄清楚如何从给定函数创建一个空的邻接矩阵:
AdjDist< - function(distMatrix,dist){}
我尝试的一切都行不通。有没有人可以帮忙解决这个问题? (如果有帮助的话,距离矩阵是5x5。)
答案 0 :(得分:1)
对于您所追求的内容并不清楚,请遵循有关如何提出完整,可重现的问题的建议。一个"空的邻接矩阵"有点不合理,暗示了对R的新手理解。
您可以使用spdep轻松执行邻接分析。希望这接近你所追求的。
首先,加载库和示例数据(来自sp库的meuse)
library(sp)
library(spdep)
data(meuse)
coordinates(meuse) <- ~x+y
现在我们创建一个邻居对象,并查看邻居矩阵的前六个观察值以及相关的四个邻居。行号对应于默认的行号,每列是最近邻居的行索引。
meuse.knn <- knearneigh(coordinates(meuse), k=4)
head(meuse.knn$nn)
我们可以使用图形结构绘制k = 4的联系
plot(meuse, pch=19)
plot(knn2nb(meuse.knn), coordinates(meuse), add=TRUE)
title(main="K nearest neighbours, k=4")
现在,为了便于说明,我们可以将默认的第五个观测值与其相关联(k = 4)最近的观测值进行子集化。
nn1.ids <- as.vector(meuse.knn$nn[5,])
nn1 <- meuse[nn1.ids,]
然后用最近的4个邻居绘制第五个观察点。
plot(nn1, pch=19, col="red")
plot(meuse[5,], pch=19, col="black", add=TRUE)
实际邻接矩阵包含在knearneigh对象(x $ nn)中。