Я ищу эффективный способ получить (количество) всех ребер между двумя наборами вершин в 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