网络:使用igraph从事件节点数据制作图形对象

use*_*008 3 networking r igraph

我想从事件注释数据中为igraph创建一个网络对象.

例如,我的数据看起来像这样.

 Event  Person
  1     Obama
  1     Putin
  1     Abe
  1     Cameron 
  2     Putin
  2     Xi
  2     Merkel
  3     Obama
  3     Abe
  3     Xi
  3     Merkel
Run Code Online (Sandbox Code Playgroud)

我假设同一事件中的每个人都有联系.奥巴马,普京,安倍和卡梅伦都有联系,因为他们都参加了比赛.基于这些数据,奥巴马和安倍有两次联系,因为他们都参加了第一场和第三场比赛.

有了这些数据,我想计算度数/中介/亲密度中心性.要计算这些中心点,我需要有一个图形对象.如何创建图形对象或邻接矩阵来计算三个中心度量?

我很抱歉这个基本问题,但我不熟悉使用R进行网络分析.

先感谢您!

Gab*_*rdi 6

这是一个二分图,你想要的是它的投影.

txt <- "Event  Person
          1     Obama
          1     Putin
          1     Abe
          1     Cameron 
          2     Putin
          2     Xi
          2     Merkel
          3     Obama
          3     Abe
          3     Xi
          3     Merkel
"

data <- read.table(textConnection(txt), header = TRUE)
BG <- graph.data.frame(data, directed = FALSE)
V(BG)$type <- grepl("^[0-9]+$", V(BG)$name)

bipartite.projection(BG)[[1]]
#> IGRAPH UNW- 6 13 -- 
#> + attr: name (v/c), weight (e/n)
#> + edges (vertex names):
#>  [1] Obama--Putin   Obama--Abe     Obama--Cameron Obama--Xi      Obama--Merkel 
#>  [6] Putin--Abe     Putin--Cameron Putin--Xi      Putin--Merkel  Abe  --Cameron
#> [11] Abe  --Xi      Abe  --Merkel  Xi   --Merkel 
Run Code Online (Sandbox Code Playgroud)