【发布时间】:2021-10-23 22:12:27
【问题描述】:
我有一个edgelist,它具有以下列from 和to。这表示节点之间的边。
from = c("10009", "10009", "10009", "10009", "10011", "10011", ...)
to = c("23908", "230908", "230908", "230908", "230514", "230514", ...)
edgelist = data.frame(from, to)
nodes = c("10009", "10011", "230908", "230514" ...)
然后我创建了一个网络对象,转换为图形对象,以计算其中心性度量:
library(network)
library(qgraph)
library(igraph)
network_el = network(edgelist, vertex.attr = nodes, directed=T) #network object
g = asIgraph(network_el) #convert to graph object
centrality = centrality_auto(g) #calculate Centrality
df = data.frame(centrality$edge.betweenness.centrality) #extract edge betweenness centrality into a dataframe
这给了我一个包含 c("from", "to", "centrality") 列的数据框。但是,“from”和“to”不再是edgelist 中列出的原始节点名称。它们已被转换为不同的 ID,从 1...开始到最后一行。
#my current results
from = c("1","2","3","4"...)
to = c("6", "100", "204", ...)
edge.betweenness.centrality = c(4653193, 20188105, ...)
如何合并原始节点名称?我需要识别实际的“from”和“to”(即节点数据),例如:
#my desired results
from = c("10009", "10009", "10009", "10009", "10011"...) #rather than 1,2,3..
to = c("23908", "230908", "230908", "230908", "235014",...)
edge.betweenness.centrality = c(4653193, 20188105, ...)
【问题讨论】:
-
如果我们知道结构是什么样的,而无需自己构建数据集,则更容易提供帮助。请包含一个最小可重复的示例,包括
library调用和您预期结果的描述 -
感谢您的帮助,编辑了我的问题以使其更清晰。
标签: r network-analysis