无标度图,访问图的顶点

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

根据Barabasi-Albert模型,我正在尝试生成无标度图。我使用了barabasi.game函数,对图的1000个顶点进行了对齐:

library('igraph')
g <- barabasi.game(1000)

我想,现在,随机挑选一个g的顶点,并在其邻居之间,随机挑选另一个顶点。如何访问图形的顶点?

编辑。我对G5W友好建议的解决方案有疑问。对于此图:

enter image description here

我从第一条指令中获得了

RV<-sample(V(g), 1)

结果RV=4,但从第二个

RVn<-sample(neighbors(g, RV, mode="all"), 1)

我获得了RVn=1。正如我们从图中可以看到的,这是一个错误;而且,指导

neighbors(g, i)

回报

+ 1/10 vertex, named, from 57207c1: 
[1] 2

为什么?

谢谢。

r graph igraph
1个回答
1
投票

改性

您可以选择一个随机顶点和一个随机邻居,如下所示:

RV  = sample(V(g), 1)
NRV = neighbors(g, RV, mode="all")
RVn = ifelse(length(NRV) == 1, NRV, sample(NRV, 1))

当RV有一个或多个邻居时,这应该有用。

我想提一下,大多数顶点只有一个邻居,所以邻居的随机选择并不多。

table(sapply(V(g), function(v) length(neighbors(g, v, mode="all"))))
  1   2   3   4   5   6   7   8   9  10  11  12  13  14  18  21  37  38  92 
657 183  67  35  12  11   3   7   4   6   2   4   1   2   2   1   1   1   1 
© www.soinside.com 2019 - 2024. All rights reserved.