我正在使用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:项目数 替换不是替换长度的倍数
如何将矢量分配给属性?
答案 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