igraph 添加属性值替换的多个先决条件

igraph adding multiple pre-requisites for attribute value replacement

所以我有如下图表和代码:

g <- make_ring(10) %>%
set_vertex_attr("a", value = 3) %>%
set_vertex_attr("b", value = 2) %>%
add_vertices(10, color = 4, "a" = 2, "b" = 3) %>%
add_vertices(10, color = 4, "a" = 2, "b" = 4)
g

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

我想更改

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

以便在 "a" 的值更改为 1

之前必须满足更多先决条件

我试过

V(g)$a[V(g)$a == 2,V(g)$b == 4] = 1 

但它返回: V(g)$a[V(g)$a == 2, V(g)$b == 4] = 1 中的错误: 矩阵上的下标数量不正确。我将如何重写这段代码?

我想你只是想要

V(g)$a[V(g)$a == 2 & V(g)$b == 4] = 1 
V(g)$a
[1] 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1