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

标签 r matrix igraph

我有一个 nxm 邻接矩阵,其中 (i,j) 表示 i 和 j 之间的关联分数。我需要将其转换为以下格式,例如:i j <score1>
使用 R' igraph 包并将其输出到文本文件中。

我可以推导出边缘列表,但它在没有权重的情况下出现。我使用了以下代码:
library(igraph) g <- graph.adjacency(myAdjacencymatrix) get.edgelist(g)
但是,它没有显示权重。

最佳答案

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=...要返回的参数,例如,具有属性的顶点列表。

future :提供一个例子,而不是强制我们为你创造一个!!!

关于R igraph - 将加权邻接矩阵转换为加权边列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24742882/

相关文章:

matlab - 如何更有效地制作这个排列矩阵?

Matlab矩阵行对行乘法两个矩阵维度不一致

python - pagerank Networkx 与 iGraph 的结果不一致

regex - R:查找数字是否在字符串范围内

r - data.table 按组填充其他行的缺失值

R,删除重复值和原始值

prolog中的矩阵乘法

c++ - 错误 : request for member ‘stor_begin’ in ‘v’ , 属于非类类型 ‘igraph_vector_t*’

r - iGraph 中的度函数

r - 延长一定长度的运行