我是R的新手,这个问题困扰着我很多。我有一个加权定向网络,我想执行以下操作:
我有一个igraph网络。我想计算所有边缘的edge_betweenness并创建具有以下列的矩阵:
edgeID, node1, node2, weight, edgeBetweenness
by edgeID,我是指图形中边缘的索引。我需要索引或ID,因为我想在另一个矩阵中使用此矩阵的元素。
因此,感谢您的帮助。
首先,请考虑camille关于如何提供可重现的最小示例的建议。对于以后的帖子,总是提供一些示例数据供我们使用是很好的。
为回答您的问题,我们生成一个随机样本图,并为每个边缘分配一些随机权重。我正在使用固定的随机种子来确保随机数据的可重复性。
set.seed(2020)
ig <- graph.full(5)
E(ig)$weights <- sample(10, length(E(ig)), replace = T)
然后我们可以使用igraph::as_data_frame
和igraph::edge_betweenness
分别提取边缘列表(包括权重)和边缘中间度。
transform(
edgeID = 1:length(ig),
as_data_frame(ig),
edgeBetweenness = edge_betweenness(ig))
# from to weights edgeID edgeBetweenness
# 1 1 2 7 1 1
# 2 1 3 6 2 1
# 3 1 4 8 3 1
# 4 1 5 1 4 1
# 5 2 3 1 5 1
# 6 2 4 4 6 1
# 7 2 5 10 7 1
# 8 3 4 6 8 1
# 9 3 5 1 9 1
# 10 4 5 8 10 1