Igraph 运行 单个节点上的 if 语句
Igraph running an if statement on individual nodes
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,每当我 运行 此代码时,属性值为 2 的 10 个未连接节点的属性值没有任何变化。我将如何更改此代码,以便 if 语句 运行s 用于每个节点并分别更改每个节点(取决于 "a" 的初始值)?
你的 if 语句没有意义,因为
- 没有变量a,只是顶点的一个属性
- if 不是向量运算符。它returns一个单一的布尔值
我觉得你想要的是这样的
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
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,每当我 运行 此代码时,属性值为 2 的 10 个未连接节点的属性值没有任何变化。我将如何更改此代码,以便 if 语句 运行s 用于每个节点并分别更改每个节点(取决于 "a" 的初始值)?
你的 if 语句没有意义,因为
- 没有变量a,只是顶点的一个属性
- if 不是向量运算符。它returns一个单一的布尔值
我觉得你想要的是这样的
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