微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在R中的邻接矩阵中创建反映边缘权重的值?

如何解决如何在R中的邻接矩阵中创建反映边缘权重的值?

假设我们有一个邻接矩阵,可能是这样的:

  A1 A2 A3
A1 0  1  0
A2 1  0  2
A3 0  2  0

每个数字都反映了人与人之间的联系数量(人为 A1-A3)。

您将如何使用 igraph 创建反映人与人之间联系数量的边权重?

我尝试了 E(matrix)$weight <- degree(matrix),但我怀疑这在技术上不正确?相反,我只想让邻接矩阵中的值反映边缘权重。

解决方法

您并不清楚您希望如何描绘重量。这列出了边上节点的权重。

g1 <- graph_from_adjacency_matrix(
  adjmatrix = matrix(c(0,1,2,0),nrow = 3,ncol = 3,byrow = T,dimnames = list(c("A1","A2","A3"),("A1","A3"))
                     ) # end matrix
  ) # end graph_from

plot(g1,edge.label = E(g1)$weight)    # plot with edge weights

enter image description here

,

您可以尝试在weighted = TRUE中启用graph_from_adjacency_matrix,例如

g <- graph_from_adjacency_matrix(adjmat,"undirected",weighted = TRUE)
plot(g,edge.width = E(g)$weight,edge.label = E(g)$weight)

给出

enter image description here

数据

> dput(adjmat)
structure(c(0,.Dim = c(3L,3L),.Dimnames = list(
    c("A1",c("A1","A3")))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。