Как рассчитать взвешенную степень центральности по igraph? - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть сеть для международного экспорта, и фрейм данных выглядит следующим образом:

Первый столбец - это целевая страна «Эго», а второй столбец - это страна «Изменить», для которой страна вывоз товаров. В третьем столбце «PercentOfImports» записывается процент экспорта целевой страны в эту страну

введите описание изображения здесь ...

Я хочу вычислить централизованность взвешенной степени для решить, какая страна является наиболее влиятельной (полностью экспортировать самый высокий процент товаров).

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

И я использую силу () для создания взвешенной центральности.

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

Однако я нашел результат проблематично c. Некоторые узлы в моем случае не имеют степени централизации, в которую ни одна из основных стран не экспортирует товары. Так что я ожидал, что в векторе deg.ex.poe будет 0. Однако результаты (на следующем рисунке) показывают, что все 0 находятся сзади этого вектора. Я проверил свои данные и обнаружил, что элементы, которые должны быть 0, заполняются более поздними элементами, которые не равны 0. Например, 2-й элемент в экспорте $ Alter - это центральная степень 5-й страны в экспорте $ Alter, поскольку центральная степень 2-го, 3-го и 4-го элементов в экспорте $ Alter равны 0.

введите описание изображения здесь

Надеюсь, вы можете помочь! Спасибо!

1 Ответ

0 голосов
/ 29 апреля 2020

Я использую это l oop, чтобы изменить порядок 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]))
      }  
...