私が作成したネットワークの媒介中心性を計算するために、次のアルゴリズムを作成しました。ネットワークは、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 億の値を反復処理するのは非常に非効率的です。中間中心性を計算する簡単な検索の後、パッケージを見つけることができませんでした。また、私のアルゴリズムの実装とそれをどのように改善できるかについての指針を誰かに教えてもらえますか?
ありがとう