通过指定端点移除边
Remove edges by specifying endpoints
如何通过命名端点从图中删除边?
delete_edges
需要边数,我不清楚端点和边数之间的映射。
library(igraph)
g = make_ring(10)
假设我想删除节点 7&8 和节点 9&10 之间的顶点。
一种骇人听闻的方法是:
g = delete_edges(g, c(7, 9))
但我必须仔细检查 E(g)
的输出,然后才能确定这些边的编号为 7 和 9。
我试图寻找 print
方法如何将节点映射分配给 E(g)
,但它看起来很像兔子洞。
看起来您可以使用字符串参数来执行此操作——请参阅 ?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")
也算作 "edge sequence",如 edges
参数中所述。
如何通过命名端点从图中删除边?
delete_edges
需要边数,我不清楚端点和边数之间的映射。
library(igraph)
g = make_ring(10)
假设我想删除节点 7&8 和节点 9&10 之间的顶点。
一种骇人听闻的方法是:
g = delete_edges(g, c(7, 9))
但我必须仔细检查 E(g)
的输出,然后才能确定这些边的编号为 7 和 9。
我试图寻找 print
方法如何将节点映射分配给 E(g)
,但它看起来很像兔子洞。
看起来您可以使用字符串参数来执行此操作——请参阅 ?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")
也算作 "edge sequence",如 edges
参数中所述。