在igraph中创建新的度量

cro*_*255 4 r social-networking igraph

我想为Burt的有效尺寸创建一个函数.该公式归结为:

有效尺寸= n - 2t/n

  • 其中t是领带的数量(不包括与自我的联系)
  • n是网络中的人数(不包括自我).

我不确定从哪里开始编写/ for igraph中的函数.

如果有更多细节会有帮助,请告诉我......

谢谢.

Joh*_*lby 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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

然后编写一个简单的函数来计算有效大小.(在这里进行操作的功能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
}
Run Code Online (Sandbox Code Playgroud)
> EffectiveSize(g)
[1] 49.6
Run Code Online (Sandbox Code Playgroud)