我是 R 新手,这个问题很困扰我。我有一个加权和定向网络,我想做以下事情:
我有一个 igraph 网络。我想计算所有边的 edge_betweenness 并创建一个包含以下列的矩阵:
edgeID, node1, node2, weight, edgeBetweenness
edgeID 指的是图中边的索引。我需要索引或 ID,因为我想在另一个矩阵中使用这个矩阵的元素。
所以谢谢你的帮助。
我是 R 新手,这个问题很困扰我。我有一个加权和定向网络,我想做以下事情:
我有一个 igraph 网络。我想计算所有边的 edge_betweenness 并创建一个包含以下列的矩阵:
edgeID, node1, node2, weight, edgeBetweenness
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