14

R の igraph を使用しています。私のグラフは、並列エッジ (同じソースとターゲットを持つ複数のエッジ) を含むエッジリストに基づいています。これらの平行なエッジをエッジ属性の重みに変換したいと思います。これを行う簡単な方法はありますか?

簡単な方法がない場合。これらの平行なエッジを特定するにはどうすればよいですか?

    duplicated(E(net))

単一の重複を返しません。重複したエッジIDを探していると思います。

4

3 に答える 3

26

E(graph)$weight <- 1続いて使用simplify(graph, edge.attr.comb=list(weight="sum"))して各エッジに 1 の重みを割り当て、重みを合計しながら複数のエッジを 1 つのエッジに折りたたむこともできます。

于 2012-10-21T21:05:31.707 に答える
4

並列エッジを持つ重み付けされていないグラフを隣接行列にエクスポートすると、igraphエッジの数を重みとして重みリストが作成され、再度読み取ることができるようです。

library("igraph")
E <- matrix(c(1,1,1,2,2,2),3,2)
G <- graph.edgelist(E)

G2 <- graph.adjacency(get.adjacency(G),weighted=TRUE)
于 2012-10-21T14:32:24.343 に答える