如何解决从邻接矩阵不生成边
当从 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 举报,一经查实,本站将立刻删除。