Igraph在各个节点上运行if语句

时间:2017-10-30 23:20:31

标签: r igraph

g <- make_ring(10) %>%
set_vertex_attr("smoke", value = 1) %>%
add_vertices(10, color = 4, "a" = 2)
g
plot(g)

if("a" == 2) {
     set_vertex_attr("a", value = 1)
}
V(g)$a

使用igraph,每当我运行此代码时,10个未连接节点的属性值没有任何变化,属性值为2.我将如何更改此代码,以便为每个节点运行if语句并更改每个节点一个单独的(取决于“a”的初始值)?

1 个答案:

答案 0 :(得分:1)

你的if语句没有意义,因为

  1. 没有变量a,只有顶点的属性
  2. 如果不是矢量运算符。它返回一个布尔值
  3. 我认为你想要的是

    V(g)$a[V(g)$a == 2] = 1
    V(g)$a
     [1] NA NA NA NA NA NA NA NA NA NA  1  1  1  1  1  1  1  1  1  1