2014-07-14 85 views
4

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

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

我可以派生边界列表,但它没有权重显示出来。我用下面的代码:

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

但是,它不显示的权重。

+0

A [reproducible example](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)在这里会有所帮助。 – MrFlick

回答

17
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=TRUEgraph.adjacency(...)有分配到边缘的权重。然后,get.data.frame(...)将默认返回包含所有边属性的边的数据帧。您可以使用what=...参数返回例如带属性的顶点列表。

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