如何计算R中的群介数中心度

如何计算R中的群介数中心度,r,igraph,R,Igraph,我试图在社交网络分析中实现一个群体中心度度量的计算 埃弗雷特、M.G.和S.p.博加蒂。“群体和组织的中心地位 《数学社会学杂志》23,1月3日 1999: 181–201. 内政部:10.1080/002250X.1999.9990219 我已经设法计算了群体亲密度中心,但我仍然对群体介乎度中心存在问题 有一个igraph对象网和一个群g,在这里面,我需要计算两件事 1连接不在组g内但至少通过组中一个顶点的每个顶点的最短路径数 2不在组中的所有顶点之间的最短路径总数 有人能帮我写一些代码来做这

我试图在社交网络分析中实现一个群体中心度度量的计算

埃弗雷特、M.G.和S.p.博加蒂。“群体和组织的中心地位 《数学社会学杂志》23,1月3日 1999: 181–201. 内政部:10.1080/002250X.1999.9990219

我已经设法计算了群体亲密度中心,但我仍然对群体介乎度中心存在问题

有一个igraph对象网和一个群g,在这里面,我需要计算两件事 1连接不在组g内但至少通过组中一个顶点的每个顶点的最短路径数 2不在组中的所有顶点之间的最短路径总数

有人能帮我写一些代码来做这件事吗

我在下面的链接上找到了一些东西,但只有一个声明说这应该是可能的:

更新:::

我现在通过反复尝试,编写了以下函数,以获得通过该集合中另一个特定组的顶点集合的非组部分中的所有最短路径

get.shortest.paths.throug.group<-function(graph, grp) {
num <- 1:vcount(graph)
y <- cbind(num, V(graph)$name)

no.group <- as.numeric(y[(y[,2] %in% grp)==FALSE, 1])
group <- as.numeric(y[(y[,2] %in% grp)==TRUE, 1])
group.chr <- as.character(y[(y[,2] %in% grp)==TRUE, 1])   
count <- vector(mode="numeric", length(group))    

paths <- lapply(1:(length(no.group)-1), function(i) {
get.all.shortest.paths(
  graph, 
  from = no.group[i],
  to = no.group[(i+1):length(no.group)]
)$res
})

list <- unsplit(paths, rep.int(seq_along(paths), sapply(paths, length)))

for (j in 1:length(group)) {
count[j] <-  sum(grepl(group.chr[j], list)*1)
}

gbc <- (2*sum(count)/length(list))/((vcount(graph)-length(group))*(vcount(graph)-length(group)-1))

return(gbc)
}
但是。。。因为我的网络包含7500名兽医;组中为118,非组中为7382,这是一个非常耗时的函数。创建7382个非组顶点之间的所有最短路径列表并不耗时,但查找31.000.000+最短路径中通过组的那一条路径的函数部分非常慢

对于1中的j:长度组{
count[j]Puzis等人给出了快速可伸缩算法的非语言特定半码:

这里有一个Python实现:


我的R还不足以直接实现它,所以很遗憾,我没有最终的答案,但作为一个新用户,我也不能在评论中留下这个。祝你好运!如果你真的在R中实现了它,请发帖。

嗨,谢谢你的回答。但是组介乎度是介乎度函数的一个组成部分吗?我只能选择两种可能性lites顶点介数和边介数。