-1

我是 R 新手,这个问题很困扰我。我有一个加权和定向网络,我想做以下事情:

我有一个 igraph 网络。我想计算所有边的 edge_betweenness 并创建一个包含以下列的矩阵:

edgeID, node1, node2, weight, edgeBetweenness

edgeID 指的是图中边的索引。我需要索引或 ID,因为我想在另一个矩阵中使用这个矩阵的元素。

所以谢谢你的帮助。

4

1 回答 1

1

首先,请考虑 camille 关于如何提供可重复且最小的示例的建议。对于以后的帖子,提供一些示例数据供我们使用总是好的。

针对您的问题,让我们生成一个随机样本图并为每条边分配一些随机权重。我使用固定的随机种子来确保随机数据的可重复性。

set.seed(2020)
ig <- graph.full(5)
E(ig)$weights <- sample(10, length(E(ig)), replace = T)

然后我们可以使用igraph::as_data_frameigraph::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
于 2020-03-01T22:17:08.197 回答