Igraph根据集中度分数识别节点

时间:2019-01-07 00:45:33

标签: r igraph network-analysis

我正在运行let shadowicon = document.getElementsByClassName('fab'); let shadow = "0px 0px #c0392b"; for(let a = 0; a<225 ; a++) { shadow = `${shadow}, ${a}px ${a}px #c0392b`; } shadowicon.style.textShadow=shadow; 软件包以对此示例数据集进行一些网络分析

igraph

在这里是所有想要跳过找到该步骤的人的边缘列表

structure(list(ï..Column1 = c(NA, NA, NA, NA), Column2 = c(NA, 
NA, NA, NA), Column3 = c(NA, NA, NA, NA), Column4 = c(NA, NA, 
NA, NA), Column5 = structure(c(2L, 1L, 4L, 3L), .Label = c("Eric ", 
"Jim", "Matt", "Tim"), class = "factor"), Column6 = c(NA, NA, 
NA, NA), Column7 = structure(c(1L, 3L, 2L, 3L), .Label = c("Eric", 
"Erica", "Mary "), class = "factor"), Column8 = structure(c(3L, 
2L, 1L, 3L), .Label = c("Beth", "Loranda", "Matt"), class = "factor"), 
    Column9 = structure(c(2L, 3L, 1L, 3L), .Label = c("Courtney ", 
    "Heather ", "Patrick"), class = "factor"), Column10 = structure(4:1, .Label = c("Beth", 
    "Heather", "John", "Loranda "), class = "factor"), Column11 = c(NA, 
    NA, NA, NA), Column12 = c(NA, NA, NA, NA), Column13 = c(NA, 
    NA, NA, NA), Column14 = c(NA, NA, NA, NA), Column15 = c(NA, 
    NA, NA, NA)), class = "data.frame", row.names = c(NA, -4L
))

我正在尝试使用此代码计算网络中每个节点的中心性(mat是我的边列表矩阵)

structure(c("Jim", "Eric ", "Tim", "Matt", "Jim", "Eric ", "Tim", 
"Matt", "Jim", "Eric ", "Tim", "Matt", "Jim", "Eric ", "Tim", 
"Matt", "Eric", "Mary ", "Erica", "Mary ", "Matt", "Loranda", 
"Beth", "Matt", "Heather ", "Patrick", "Courtney ", "Patrick", 
"Loranda ", "John", "Heather", "Beth"), .Dim = c(16L, 2L), .Dimnames = list(
    NULL, c("Column5", "value")))

我的输出是这样的

g1=graph_from_edgelist(mat)
degree.cent <- centr_degree(g1, mode = "all")
degree.cent

我知道'degree $ res'是我的中心得分指标,但是我不清楚哪个节点实际收到该得分。我查看了一个教程here,但它说的第一个分数是“节点1”。没有迹象表明节点1是什么,或者没有简单的方法来识别

1 个答案:

答案 0 :(得分:1)

首先,由于某些名称包含空格(Eric,Marry,Heather等),您得到的结果不正确。所以,让

mat <- gsub(" ", "", mat)
g1 <- graph_from_edgelist(mat)
degree.cent <- centr_degree(g1, mode = "all")

现在我们可以提取相应的顶点名称,并将其与您的结果结合起来

setNames(degree.cent$res, V(g1)$name)
#      Jim     Eric     Mary      Tim    Erica     Matt  Loranda     Beth  Heather 
#        4        5        2        4        1        6        2        2        2 
#  Patrick Courtney     John 
#        2        1        1