节点如何在R中使用igraph获得列表类型属性?

时间:2014-06-10 12:04:59

标签: r igraph

实际上,我想将每个节点的特定属性设置为列表,并尝试使用此模式:

1)读边列表

net <- read.graph(path)

2)将所有节点的社区信息设置为空列表

net <- set.vertex.attribute(net, "community", V(net), value=list())

3)测试

net <- set.vertex.attribute(net, "community", V(net)[1], c(get.vertex.attribute(net, "community", V(net)[1]),4244))

get.vertex.attribute(net, "community", V(net)[1])

测试结果很好:返回正确的值。

但是,我希望连接每个节点的社区值 - 比如,V(net)[1]的值为c(1, 3, 4, 5, …) - 但我不确定如何继续。

1 个答案:

答案 0 :(得分:0)

这会将节点属性设置为列表:

library(igraph)
g <- graph.famous("Bull")           # sample
# to set attribute of one vertex
V(g)[1]$community <- list(c(1,1,1))
V(g)[1]$community[[1]]
# [1] 1 1 1

# to set attributes of all vertices
V(g)$community <- sapply(1:vcount(g),function(i)list(sample(1:5,5)))
V(g)$community
# [[1]]
# [1] 1 2 4 5 3
# 
# [[2]]
# [1] 2 3 5 1 4
# 
# [[3]]
# [1] 3 2 5 1 4
# 
# [[4]]
# [1] 3 1 5 2 4
# 
# [[5]]
# [1] 1 5 2 4 3