我正在尝试将矢量指定为顶点的属性,但没有任何运气:
# assignment of a numeric value (everything is ok)
g<-set.vertex.attribute(g, 'checked', 2, 3)
V(g)$checked
# assignment of a vector (is not working)
g<-set.vertex.attribute(g, 'checked', 2, c(3, 1))
V(g)$checked
查看手册http://igraph.sourceforge.net/doc/R/attributes.html 看起来这是不可能的。有没有解决方法?
到目前为止,我想出的唯一事情是:
存储此
答案 0 :(得分:4)
这很好用:
## replace c(3,1) by list(c(3,1))
g <- set.vertex.attribute(g, 'checked', 2, list(c(3, 1)))
V(g)[2]$checked
[1] 3 1
编辑为什么会这样? 当你使用:
g<-set.vertex.attribute(g, 'checked', 2, c(3, 1))
你收到这个警告:
number of items to replace is not a multiple of replacement length
实际上,您尝试在长度为1的变量中放置长度 = 2的c(3,1)。所以想法是用类似的东西替换c(3,1)但长度= 1。例如:
length(list(c(3,1)))
[1] 1
> length(data.frame(c(3,1)))
[1] 1