1

我正在为 R 处理 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。然后我就这样做了

    recNet <- as.undirected(net, mode = "mutual",edge.attr.comb="c")

现在我可以看到实际上有一些边只包含一个值。我的新图 recNet 似乎包含网络的非互易边。我做错了什么,还是我误解了“共同选择”?

4

1 回答 1

3

发生这种情况是因为图中的某些边是自环。所有最终权重为 1 的边都是自环:

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

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

于 2012-10-22T14:18:53.837 回答