我正在研究igraph中的有向图。我试图将它转换为无向图,其中只有前者的倒数边缘持续存在。应该很容易,但我得到了奇怪的结果。
首先我这样做了
library(igraph)
load("dmNet.Rdata")
#http://www.unet.univie.ac.at/~a0406222/dmNet.Rdata
recNet <- as.undirected(net, mode = "mutual",edge.attr.comb="sum")
当我检查E(recNet)$ weight时,有很多边缘的权重为1,这是不可能的,因为两个倒数边的总和必须至少为2.然后我就这样做< / p>
recNet <- as.undirected(net, mode = "mutual",edge.attr.comb="c")
现在我可以看到实际上有些边只包含一个值。我的新图形recNet似乎包含网络的非互易边缘。我做错了什么,还是我想念“共同选择”?
答案 0 :(得分:3)
这是因为某些边是图中的自循环。最终权重为1的所有边都是自循环:
all(which(E(recNet)$weight == 1) %in% which(is.loop(recNet)))
# [1] TRUE
显然,自循环被视为有向图中的相互边。如果您想将自循环视为非相互,那么您可以从图中删除它们。但是要小心,因为有些顶点有多个自循环,你可能不想删除它们。