R igraph - 将加权邻接矩阵转换为加权边缘列表

时间:2014-07-14 18:02:38

标签: r matrix igraph

我有一个nxm邻接矩阵,其中(i,j)表示i和j之间关联的分数。我需要将其转换为以下格式,如: i j <score1>

使用R'igraph包并将其输出到文本文件中。

我可以推导出边缘列表,但它没有显示权重。我使用了以下代码:

library(igraph) g <- graph.adjacency(myAdjacencymatrix) get.edgelist(g)

但是,它没有显示权重。

1 个答案:

答案 0 :(得分:20)

library(igraph)
set.seed(1)                # for reproducible example
myAdjacencyMatrix <- matrix(runif(400),nc=20,nr=20)

g  <- graph.adjacency(myAdjacencyMatrix,weighted=TRUE)
df <- get.data.frame(g)
head(df)
#   from to    weight
# 1    1  1 0.2655087
# 2    1  2 0.9347052
# 3    1  3 0.8209463
# 4    1  4 0.9128759
# 5    1  5 0.4346595
# 6    1  6 0.6547239

您需要在weighted=TRUE的调用中使用graph.adjacency(...)来为边缘指定权重。然后,默认情况下,get.data.frame(...)将返回带有所有边属性的边的数据框。您可以使用what=...参数返回,例如,带有属性的顶点列表。

将来:提供一个例子,而不是强迫我们为你创建一个!!!