0
簡化我與網絡數據R.無法理解count.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"))
工作和所遇到的一個奇怪的(或至少我沒想到它)的行爲與
count.multiple
在
igraph
包
我想要的是統計所有的邊緣,並使用倍數作爲權重。
當我做我的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)
其中pr oduces
9 1 1 4 1
我得到的是什麼回事,簡化只是在添加權重,但我不明白爲什麼/時,這將被用來作爲反對什麼,ddply
是做..?
有什麼想法?
謝謝!
所以'count.multiple'然後'simplify'是多餘的? – crock1255
是的:在這個例子中,'count.multiple'給a→b邊賦了權重3,但是仍然有三個; 「簡化」然後添加這些重量,導致總重量爲9.我們最終得到所需重量的平方。 –
太好了。感謝您解決這個問題! – crock1255