无比例尺图,访问图的顶点

时间:2019-04-27 14:57:22

标签: r graph igraph

根据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

为什么?

谢谢。

1 个答案:

答案 0 :(得分: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