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

从邻接矩阵不生成边

如何解决从邻接矩阵不生成边

当从 graph_from_adjacency_matrix() 调用 igraph 时,我根本没有得到任何边缘。

library(igraph)

set.seed(42)

# data = read.table("sequences_distancematrix.out",row.names = 1,stringsAsFactors = FALSE,header = TRUE)
data = read.table("https://pastebin.com/raw/UWt56tfh",header = TRUE)


dismat = data.matrix(data)

# build the graph object
network <- graph_from_adjacency_matrix(dismat,mode = "undirected")

但是在检查网络时没有边缘:

> print_all  (network)
IGRAPH f4f6666 UN-- 46 0 -- 
+ attr: name (v/c)

我认为这可能是因为 igraph 不接受低于 0 的双精度值,所以 x10 矩阵中的所有内容但结果相同

距离矩阵:https://pastebin.com/UWt56tfh

任何帮助将不胜感激。

解决方法

  • 如果您想要加权边:
(network <- graph_from_adjacency_matrix(dismat,mode = "undirected",weighted = TRUE))
  • 如果您想要未加权的边:
(network <- graph_from_adjacency_matrix(dismat > 0,mode = "undirected"))
,

我不确定您是如何尝试将所有内容乘以 10 的,但这对我有用。

library(igraph)

data <- read.table("https://pastebin.com/raw/UWt56tfh",row.names = 1,stringsAsFactors = FALSE,header = TRUE) 

dismat <- data.matrix(data)
network <-  graph_from_adjacency_matrix(dismat*10,mode = "undirected")
print_all(network)

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