通过指定端点删除边

时间:2016-12-28 21:17:18

标签: r igraph

如何通过命名端点来删除图中的边?

delete_edges需要边数,而且我不清楚端点和边数之间的映射。

library(igraph)
g = make_ring(10)

我想删除节点7& 8和节点9& 10之间的顶点。

这样做的一种hackish方式是:

g = delete_edges(g, c(7, 9))

但我必须仔细检查E(g)的输出,然后才能确定这些边是7& 9。

我试着寻找print方法如何将节点映射分配给E(g),但它看起来像兔子洞。

1 个答案:

答案 0 :(得分:2)

看起来您可以使用字符串参数执行此操作 - 请参阅?delete_edges中的第二个示例。

g = delete_edges(g, c("7|8", "9|10"))
g
# IGRAPH U--- 10 8 -- Ring graph
# + attr: name (g/c), mutual (g/l), circular (g/l)
# + edges:
# [1] 1-- 2 2-- 3 3-- 4 4-- 5 5-- 6 6-- 7 8-- 9 1--10

显然c("7|8", "9|10")也算作edges参数中描述的“边缘序列”。