R 从距离矩阵到邻接矩阵

R 从距离矩阵到邻接矩阵,r,distance,igraph,minimum-spanning-tree,adjacency-matrix,R,Distance,Igraph,Minimum Spanning Tree,Adjacency Matrix,我有一个距离矩阵1024x1024,其中包含所有项之间的所有距离。我想从这开始定义一个图。所以我定义了一个最小生成树,并计算了它的邻接矩阵 我的距离矩阵是distMat matrix_of_distances <- as.matrix(distMat) myGraph <- graph.adjacency(matrix_of_distances, weighted=TRUE) matrix\u of_distance错误源于在类spantree的对象上使用函数作为邻接矩阵,而该对象

我有一个距离矩阵1024x1024,其中包含所有项之间的所有距离。我想从这开始定义一个图。所以我定义了一个最小生成树,并计算了它的邻接矩阵

我的距离矩阵是
distMat

matrix_of_distances <- as.matrix(distMat)
myGraph <- graph.adjacency(matrix_of_distances, weighted=TRUE)

matrix\u of_distance错误源于在类
spantree
的对象上使用函数
作为邻接矩阵
,而该对象需要一个
igraph

由于您使用的是
igraph
,一个简单的解决方案是使用
igraph
的函数
mst
从原始“距离图”计算最小生成树

以下是
spantree
如何计算最小生成树:

spt <- spantree(matrix_of_distances)
require(vegan)
data(dune)
dis <- vegdist(dune)
tr <- spantree(dis)
生成的树如下所示(
plot(g_mst,vertex.color=NA,vertex.size=10,edge.arrow.size=0.5)
):

一旦你有了你的
igraph
树,你就知道你可以把它转换成一个邻接矩阵,函数
就是邻接矩阵

A <- as_adjacency_matrix(mst)

A错误源于在类
spantree
的对象上使用函数
作为邻接矩阵
,当它需要一个
igraph

由于您使用的是
igraph
,一个简单的解决方案是使用
igraph
的函数
mst
从原始“距离图”计算最小生成树

以下是
spantree
如何计算最小生成树:

spt <- spantree(matrix_of_distances)
require(vegan)
data(dune)
dis <- vegdist(dune)
tr <- spantree(dis)
生成的树如下所示(
plot(g_mst,vertex.color=NA,vertex.size=10,edge.arrow.size=0.5)
):

一旦你有了你的
igraph
树,你就知道你可以把它转换成一个邻接矩阵,函数
就是邻接矩阵

A <- as_adjacency_matrix(mst)
A
A <- as_adjacency_matrix(mst)