igraph, r : unlist 矩阵列表的节点中心性分数
igraph, r : unlist node centrality scores for a list of matrices
我正在使用我正在使用 igraph 包分析的网络图列表(即 1000 多个邻接矩阵)。这些图存储在一个拆分文件中,每个图都有一个唯一的 ID。
我使用以下代码计算了各个节点在各个图中的中介中心性分数:
b <- function (b) betweenness(b, directed = FALSE, normalized = TRUE)
Between <- lapply (listofgraphs, b)
show(Between) #looks like this:
$`35630` #Graph ID
1676 1741 1750 #Node ID
0 1 0 #Scores
$`35631`
1738 1750
0 1
$`35633`
1738 1750 4110
0 0 0
现在,我需要的是一个数据框,其中包含图表 ID、节点 ID 的列和中间性的各个分数。像这样:
Graph.ID Node.ID Betweenness
35630 1676 0
35630 1741 1
35630 1759 0
35631 1738 0
35631 1750 1
35631 1738 0
35633 1750 0
35633 et cetera .....
我试过 unlist、rbind 等,但出于某种原因我无法让它工作。如果有人能帮我解决这个问题那就太好了!
我们可以 melt
list
在 stack
在 list
中命名 vector
之后
library(reshape2)
melt(lapply(Between, stack))[-2]
我正在使用我正在使用 igraph 包分析的网络图列表(即 1000 多个邻接矩阵)。这些图存储在一个拆分文件中,每个图都有一个唯一的 ID。
我使用以下代码计算了各个节点在各个图中的中介中心性分数:
b <- function (b) betweenness(b, directed = FALSE, normalized = TRUE)
Between <- lapply (listofgraphs, b)
show(Between) #looks like this:
$`35630` #Graph ID
1676 1741 1750 #Node ID
0 1 0 #Scores
$`35631`
1738 1750
0 1
$`35633`
1738 1750 4110
0 0 0
现在,我需要的是一个数据框,其中包含图表 ID、节点 ID 的列和中间性的各个分数。像这样:
Graph.ID Node.ID Betweenness
35630 1676 0
35630 1741 1
35630 1759 0
35631 1738 0
35631 1750 1
35631 1738 0
35633 1750 0
35633 et cetera .....
我试过 unlist、rbind 等,但出于某种原因我无法让它工作。如果有人能帮我解决这个问题那就太好了!
我们可以 melt
list
在 stack
在 list
vector
之后
library(reshape2)
melt(lapply(Between, stack))[-2]