我创建了以下算法来计算我制作的网络的中介中心性。该网络保存在一个 62589x62589 的大矩阵中。
getBetween<-function(matIn)
{
betScore<-c()
for(i in 1:nrow(matIn))
{
tmpTF<-(matIn[i, ] !=0)
tmp1<-matIn[i, tmpTF]
mat2<-matrix(0, length(tmp1), length(tmp1))
rownames(mat2)<-rownames(matIn)[tmpTF]
colnames(mat2)<-rownames(matIn)[tmpTF]
for(j in 1:nrow(mat2))
{
for(k in 1:ncol(mat2))
{
if(mat2[j,k] > matIn[rownames(mat2)[j], colnames(mat2)[k]])
{
mat2[j,k] <-0
}
}
}
betScore<-c(betScore, sum(mat2 > 0))
}
}
然而,迭代超过 40 亿个值是非常低效的。在快速搜索后我找不到任何可以计算中介中心性的包,有人知道吗?另外,任何人都可以就我的算法的实现以及如何改进它给我任何指示吗?
谢谢