在保留节点ID的同时删除顶点

时间:2013-11-27 14:36:30

标签: igraph

我正在使用“删除顶点”功能,我在网络上发现了一个奇怪的行为。 在阅读了igraph的文档后,我发现:

“delete.vertices从图形中删除指定的顶点及其相邻边。顶点的id不会被保留。”

是否有任何解决办法来保护原始网络的ID?

1 个答案:

答案 0 :(得分:2)

是的,为图表指定一个顶点属性,可能name属性最好。这些在删除后保留。

g <- graph.ring(10)
V(g)$name <- letters[1:10]
g2 <- delete.vertices(g, c("a", "b", "f"))
str(g2)
# IGRAPH UN-- 7 5 -- Ring graph
# + attr: name (g/c), mutual (g/l), circular (g/l), name (v/c)
# + edges (vertex names):
# [1] c--d d--e g--h h--i i--j

如果要保留原始数字顶点id,请将它们指定为名称:

gg <- graph.ring(10)
V(gg)$name <- V(gg)
gg2 <- delete.vertices(gg, c(1,2,6))
str(gg2)
# IGRAPH UN-- 7 5 -- Ring graph
# + attr: name (g/c), mutual (g/l), circular (g/l), name (v/n)
# + edges (vertex names):
# [1] 3-- 4 4-- 5 7-- 8 8-- 9 9--10