如何将加权边缘列表转换为 r 中的邻接矩阵
How to turn a weighted edgelist into an adjacency matrix in r
我有一个加权边列表,我想将其转换为邻接矩阵。
有没有我可以用来执行此操作的简单代码?
数据如下所示:
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
as.matrix(tidyr::spread(edgelist, "To", "Weight")[-1])
一种方法是使用 igraph
包中的 get.adjacency
。
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
虽然可以简单地将数据转换为矩阵,但准备好使用此包的其余功能可能会有所帮助。
我有一个加权边列表,我想将其转换为邻接矩阵。 有没有我可以用来执行此操作的简单代码?
数据如下所示:
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
as.matrix(tidyr::spread(edgelist, "To", "Weight")[-1])
一种方法是使用 igraph
包中的 get.adjacency
。
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
虽然可以简单地将数据转换为矩阵,但准备好使用此包的其余功能可能会有所帮助。