如何用igraph计算加权度中心性?

问题描述 投票:0回答:1

我有一个国际出口的网络,数据框架如下。

第一列是焦点国 "Ego",第二列是 "Alter",焦点国向其出口商品。第三列 "PercentOfImports "记录了焦点国对该国出口的百分比

请在此输入图片描述...

我想计算加权的中心度来决定哪个国家是最有影响力的(完全出口商品的百分比最高)。

export.gra<-graph_from_edgelist(cbind(export$Ego, export$Alter))
E(export.gra)$weight.poe<-export$PercentOfImports

我使用strength()来创建加权的中心度。

deg.ex.poe<-strength(export.gra, mode="in", weights = E(export.gra)$weight.poe)

然而,我发现结果是有问题的。在我的案例中,有些节点没有度中心性,没有焦点国家向其出口商品。所以我期望deg.ex.poe的向量中会出现一些0。然而,结果(如下图)显示所有的0都在这个向量的后面。我检查了我的数据,发现应该是0的元素被后面的不是0的元素所填充。比如出口$Alter中的第2个元素是出口$Alter中第5个国家的度数中心,因为出口$Alter中的第2、3、4个元素的度数中心都是0。

在此输入图像描述

希望你能帮忙! 谢谢!

r igraph network-analysis
1个回答
0
投票

我用这个循环来重排deg.ex.poe。211是节点数。

for (i in 2:211){
    ifelse(TF[i]=="TRUE",
           deg.ex.poe[i]<-deg.ex.poe[i],
           deg.ex.poe<-c(deg.ex.poe[1:i-1],0,deg.ex.poe[i:211]))
      }  
© www.soinside.com 2019 - 2024. All rights reserved.