1

我有一个加权边缘列表,我想将其转换为邻接矩阵。是否有一个简单的代码可以用来执行此操作?

数据如下所示:

  From To    Weight
1    a  a 0.3274570
2    b  a 0.7188648
3    a  b 0.1097450
4    b  b 0.9054419

这是复制代码:

edgelist <- setNames(cbind(expand.grid(letters[1:2], letters[1:2]), runif(4)), c("From", "To", "Weight"))
edgelist
4

2 回答 2

3

一种方法是get.adjacencyigraph包中使用。

library(igraph)
mygraph <- graph.data.frame(edgelist)
get.adjacency(mygraph, sparse = FALSE, attr='Weight')
#          a         b
#a 0.3274570 0.1097450
#b 0.7188648 0.9054419

虽然可以简单地将数据转换为矩阵,但准备好使用该软件包的其余功能可能会有所帮助。

于 2020-05-05T03:43:32.573 回答
1
as.matrix(tidyr::spread(edgelist, "To", "Weight")[-1])
于 2020-05-05T03:40:03.933 回答