将命名向量添加到属性

时间:2018-12-03 22:36:42

标签: r igraph

我正在使用igraph,我想为图形的顶点属性分配一个命名矢量,如下所示:

library(igraph)

test.graph <- graph.famous('bull')
test.vec <- c(0,0,0)
names(test.vec) <- c('a','b','c')
V(test.graph)[1]$test.attr <- test.vec

但是我每次都会收到警告,说:

  

警告消息:以vattrs [[name]] [index] <-value:项目数   替换不是替换长度的倍数

如何将矢量分配给属性?

1 个答案:

答案 0 :(得分:2)

据我了解,您只想将test.vec作为属性分配给第一个顶点。但是,看起来不允许将向量设置为顶点属性。但是,我们可以分配一个列表:

V(test.graph)[1]$test.attr <- list(test.vec)

(test.graph <- set.vertex.attribute(test.graph, "test.attr", 
                                    index = 1, list(test.vec)))
# IGRAPH ade745b U--- 5 5 -- Bull
# + attr: name (g/c), test.attr (v/x)
# + edges from ade745b:
# [1] 1--2 1--3 2--3 2--4 3--5

验证:

get.vertex.attribute(z, "test.attr")
# [[1]]
# a b c 
# 0 0 0 
#
# [[2]]
# NULL
#
# [[3]]
# NULL
#
# [[4]]
# NULL
#
# [[5]]
# NULL