在不使用邻接矩阵的情况下获取R中两组顶点之间的边

在不使用邻接矩阵的情况下获取R中两组顶点之间的边,r,igraph,R,Igraph,我正在寻找一种有效的方法来获得R中两组顶点之间的所有边的计数。我有一个包含两组大型顶点的大型图,我想得到从set1开始到set2结束的所有边,反之亦然。set1和set2是相互排斥的。图形不是定向的,所以我不想有重复的边。我希望避免使用邻接矩阵,但如果邻接矩阵是计算/内存方面最有效的方法,那就没办法了。我知道如何使用邻接矩阵 require(igraph) require(dplyr) graph <- make_full_graph(7) V(graph)$name <- c("A

我正在寻找一种有效的方法来获得R中两组顶点之间的所有边的计数。我有一个包含两组大型顶点的大型图,我想得到从set1开始到set2结束的所有边,反之亦然。set1和set2是相互排斥的。图形不是定向的,所以我不想有重复的边。我希望避免使用邻接矩阵,但如果邻接矩阵是计算/内存方面最有效的方法,那就没办法了。我知道如何使用邻接矩阵

require(igraph)
require(dplyr)
graph <- make_full_graph(7)
V(graph)$name <- c("A", "B", "C", "D", "E", "F", "G")
set1 <- V(graph)[name %in% c("A", "C")]
set2 <- V(graph)[name %in% c("E", "D")]

#desired Output
    A -- E
    C -- E
    A -- D
    C -- D
#desired Output
    4  #number of edges

在这种情况下,选择边时可以使用%-%运算符。它将子集从一组顶点到另一组顶点的边。你能行

E(graph)[set1 %--% set2]
# [1] A--D A--E C--D C--E

您可以在igraph es索引帮助页面上找到此文档。

似乎我在igraph中查看了所有错误的函数。非常感谢。