使用相互转换为无向图后的非倒数边

时间:2012-10-22 07:19:38

标签: r igraph

我正在研究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似乎包含网络的非互易边缘。我做错了什么,还是我想念“共同选择”?

1 个答案:

答案 0 :(得分:3)

这是因为某些边是图中的自循环。最终权重为1的所有边都是自循环:

all(which(E(recNet)$weight == 1) %in% which(is.loop(recNet)))
# [1] TRUE

显然,自循环被视为有向图中的相互边。如果您想将自循环视为非相互,那么您可以从图中删除它们。但是要小心,因为有些顶点有多个自循环,你可能不想删除它们。