R iGraph:如何从图形中获取加权邻接矩阵?

3

虽然有一些问题涉及从邻接矩阵创建图形,但我没有找到关于从加权图中提取加权邻接矩阵的信息。

假设我有以下图形:

library(igraph)
nodes <- data.frame(name=c("a","b", "c", "d", "f", "g"))

col1 <- c("a", "g", "f","f", "d","c")
col2 <- c("b", "f","c","d","a","a")
weight <- c(1,4,2,6,2,3)
edges <- cbind.data.frame(col1,col2,weight)

g <- graph.data.frame(edges, directed=F, vertices=nodes)
E(g)$weight <- weight

如何获取图g的加权邻接矩阵?
1个回答

5

看起来有几种方法可以做到这一点。

也许显而易见的是,第一种方法是仔细查看 as_adjacency_matrix() 的文档,并使用 attr 选项:

as_adjacency_matrix(g,attr = "weight",sparse = T)

6 x 6 sparse Matrix of class "dgCMatrix"
  a b c d f g
a . 1 3 2 . .
b 1 . . . . .
c 3 . . . 2 .
d 2 . . . 6 .
f . . 2 6 . 4
g . . . . 4 .

但是也可以输入以下命令
get.adjacency(g,attr = "weight",sparse = T)

或者只需要
g[]

6 x 6 sparse Matrix of class "dgCMatrix"
  a b c d f g
a . 1 3 2 . .
b 1 . . . . .
c 3 . . . 2 .
d 2 . . . 6 .
f . . 2 6 . 4
g . . . . 4 .

即使我不确定最后一项选择的适用范围。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接