获取顶点序列中的顶点

时间:2014-06-20 13:04:31

标签: r igraph vertex

igraph的顶点序列似乎不是一个序列。例如:

enter image description here

V( module.net )的v序列是一个序列,因为我可以通过[deg==1]访问它。但是当我尝试peripheral[1]时它为什么会起作用呢?对此有任何可能的解释吗?

此示例的数据集不容易包含在内,对不起。

//

我找到答案,第一个顶点的索引' MED24'是4而不是1.所以如果我想得到第一个顶点,我必须做peripheral[1]。但这似乎有点不合理。一个可复制的例子:

g = graph.ring(5)
V(g)$name = c('node1', 'node2', 'node3','node4','node5')
temp = V(g)[2:3]

如果您想访问' node3'从temp,你必须使用temp[3]而不是temp[2]

enter image description here

1 个答案:

答案 0 :(得分:0)

我总是遇到顶点序列和边缘序列的问题。索引操作符对这些对象的问题是按向量名称而不是位置搜索。所以peripheral[1]正在查看矢量1是否在列表中,它没有提取列表中的第一个元素。

我提出的最好的方法是将序列转换为简单的向量并重新索引向量列表。例如

el <- cbind(letters[1:5], letters[c(2,3,5,1,4)])
gg <- graph.edgelist(el)
p <- V(gg)[c(2,3)]
V(gg)[as.vector(p)[1]]

实际上,如果您只想提取特定顶点的名称,那么

p$name[1]

会起作用。