在igraph中,哪些网络规范允许节点组具有相同的分布?

时间:2019-01-02 21:29:21

标签: r igraph

我目前正在尝试生成一个网络,其中度分布具有较大的方差,但每个度具有足够数量的节点。例如,在igraph中,如果我们使用Barabasi-Albert网络,则可以执行以下操作:

g <- sample_pa(n=100,power = 1,m = 10)
g_adj <- as.matrix(as_adj(g))
rowSums(g_adj)
  [1]  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
 [29] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
 [57] 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
 [85] 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

上面显示了100个节点中每个节点的度数。对我来说,问题是我只希望具有10-15个唯一的度值,因此,例如,最后的7个节点中的每个节点都有93个,而不是93 94 95 96 97 98 99 。换句话说,当我打电话

unique(rowSums(g_adj))

我最多希望输入10-15个值。有没有一种方法可以使这些节点“聚类”,而不是拥有这么多不同的唯一度值?谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用 <body onload="loop_ports()"> <div id="onu_tags" class="tags"> </div> </body>生成具有给定度数序列的随机图。例如,

sample_degseq

请注意,您可能需要玩degrees <- seq(1, 61, length = 10) # Ten different degrees times <- rep(10, 10) # Giving each of the degrees to ten vertices g <- sample_degseq(rep(degrees, times = times), method = "vl") table(degree(g)) # 1 7 14 21 27 34 41 47 54 61 # 10 10 10 10 10 10 10 10 10 10 degree,因为最终times必须是graphic sequence