2011-11-01 18 views
4

我想爲Burt的有效大小創建一個函數。 公式歸結爲:在igraph中創建新的度量方法

有效尺寸= N - 2噸/ N

  • 其中t是關係(不計的聯繫,自我)的數
  • n是的人的數量在網絡中(不包括自我)。

我真的不確定從哪裏開始編寫igraph中的函數。

讓我知道,如果有更多的細節將是有益的......

感謝。

+1

提供樣本圖,到目前爲止你已經嘗試計算什麼尺寸。 –

回答

7

首先模擬基本圖表:

require(igraph) 

alters = 50 
ties = 10 
set.seed(12345) 
edgelist = rbind(0, 1:alters) 
edgelist = cbind(edgelist, replicate(ties, sample(alters, 2))) 
g = graph(edgelist, directed=F) 

dev.new(width=5, height=5) 
plot(g, layout=layout.kamada.kawai) 

enter image description here

然後寫一個簡單的函數來計算的有效尺寸。 (這裏,關於g操作的功能都很好地記錄在igraph手冊和周圍的淨各種例子。)

EffectiveSize <- function(g, ego=0) { 
    n = neighbors(g, ego) 
    t = length(E(g)[to(n) & !to(ego)]) 
    n = length(n) 
    n - 2 * t/n 
} 
> EffectiveSize(g) 
[1] 49.6 
+0

啊。謝謝!對於冗餘/基本問題抱歉,但我真的不確定是否需要用C調用/編輯。我沒有意識到我可以創建正常的R函數來與igraph一起工作。 – crock1255

+0

是的,它真的很靈活。 igraph也是一個很好的軟件包,用這些方法在頂點和邊上進行索引/迭代。祝你的項目好運! –