私はネットワークデータを操作していますが、Rcount.multiple
のパッケージで奇妙な(または少なくとも私はそれを予期していなかった)動作に遭遇しました。igraph
library(igraph)
library(plyr)
df <- data.frame( sender = c( "a", "a", "a", "b", "b", "c","c","d" ),
receiver = c( "b", "b", "b", "c", "a", "d", "d", "a" ) )
私が欲しいのは、すべてのエッジをカウントし、その倍数を重みとして使用することです。
私が行うddply(df, .(sender, receiver), "nrow")
ときの結果は次のとおりです。
sender receiver nrow
1 a b 3
2 b a 1
3 b c 1
4 c d 2
5 d a 1
それが私が期待することです。
しかし、私はこれをigraphを使用して再現することはできませんcount.multiple
。これは、igraph内でこれを行うことを期待していたことです。
df.graph <- graph.edgelist(as.matrix(df))
E(df.graph)$weight <- count.multiple(df.graph)
E(df.graph)$weight
生成:
3 3 3 1 1 2 2 1
次に、次のsimplify
コマンドを使用しました。
df.graph <- simplify(df.graph)
を生成します
9 1 1 4 1
ここで何が起こっているのかわかります。単純化は重みを追加するだけですが、何をしているのかではなく、なぜ/いつこれが使用されるのかわかりませんddply
。
何かご意見は?
ありがとう!