我有一个带有 10 个顶点和 10 个边的未加权和无向图(A)。
> A
IGRAPH UNW- 10 10 --
+ attr: name (v/c), weight (e/n)
我想从该图中删除由顶点对定义的一堆边,例如,我想删除以下边:
V4 -- V5
V3 -- V7
V3 -- V6
这些边存储在称为“边”的数据框中。我想一口气删除这些边。我试过:
> delete.edges(A,t(edges))
但这不起作用并返回错误:
Error in as.igraph.es(graph, edges) : Invalid edge names
In addition: Warning message:
In as.igraph.es(graph, edges) : NAs introduced by coercion
当添加边的等效命令有效时,为什么这不起作用?
add.edges(A,t(edges))
如何在一个命令中从图 A 中删除这些边?谢谢
最佳答案
可能最简单的方法是将图用作邻接矩阵:
library(igraph)
g <- graph.ring(10)
V(g)$name <- letters[1:10]
str(g)
# IGRAPH UN-- 10 10 -- Ring graph
# + attr: name (g/c), mutual (g/l), circular (g/l), name (v/c)
# + edges (vertex names):
# [1] a--b b--c c--d d--e e--f f--g g--h h--i i--j a--j
g[ from=c("a","b","c"), to=c("b","c","d") ] <- 0
str(g)
# IGRAPH UN-- 10 7 -- Ring graph
# + attr: name (g/c), mutual (g/l), circular (g/l), name (v/c)
# + edges (vertex names):
# [1] d--e e--f f--g g--h h--i i--j a--j
查看更多 http://igraph.org/r/doc/graph.structure.html .
关于r - 删除igraph R中顶点之间的边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24324009/