我如何在R中进行一些计算? [关闭]

问题描述 投票:-1回答:1

我是R的新手,这个问题困扰着我很多。我有一个加权定向网络,我想执行以下操作:

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

edgeID, node1, node2, weight, edgeBetweenness

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

因此,感谢您的帮助。

r igraph directed-graph weighted-graph
1个回答
0
投票

首先,请考虑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
© www.soinside.com 2019 - 2024. All rights reserved.