在igraph中,如何用某些比例权重替换向量值?

在igraph中,如何用某些比例权重替换向量值?,r,igraph,R,Igraph,我有一个具有3个节点属性的标准图:a、b和c。我有一个导致a和b的值不断变化的代码,c依赖于这些值。为了适应不断变化的值,我在for循环中运行了以下代码 V(g)$c[V(g)$a <= V(g)$b] <- sample(c(0, 1), vcount(g), replace = TRUE, prob = c(.9, .1)) 但是,它返回警告: 要替换的项目数不是替换长度的倍数。虽然代码运行,但它没有考虑值的权重。如何修复此代码?问题在于,示例语句生成vcountg值-图中的每

我有一个具有3个节点属性的标准图:a、b和c。我有一个导致a和b的值不断变化的代码,c依赖于这些值。为了适应不断变化的值,我在for循环中运行了以下代码

V(g)$c[V(g)$a <= V(g)$b] <- sample(c(0, 1), vcount(g), replace = TRUE, prob = c(.9, .1))
但是,它返回警告: 要替换的项目数不是替换长度的倍数。虽然代码运行,但它没有考虑值的权重。如何修复此代码?

问题在于,示例语句生成vcountg值-图中的每个节点对应一个值。但您正试图将这些值存储到Vg$c[Vg$a]中
V(g)$c[V(g)$a <= V(g)$b] <- 
    sample(c(0, 1), sum(V(g)$a <= V(g)$b), replace = TRUE, prob = c(.9, .1))