У меня есть проблема с функцией get.edge.ids()
в igraph
в RI, мне нужно передать ей нечетное количество вершин и получить между ними edgeIDs
, но, к сожалению, он получает только примерный код попарных вершин для генерации ориентированного графа:
Graph <- erdos.renyi.game(20, 100 , directed=TRUE, loops=FALSE)
как мне вызвать get.edge.ids:
get.edge.ids(Graph, c("1", "2", "3))
Я ожидаю получить все возможные идентификаторы ребер между этими вершинами, но это не работает. Я разработал функцию для этой цели, но это не достаточно быстро. Вот функция:
insideOfCommEdgeIDs <- function(graph, vertices)
{
out <- matrix()
condition <- matrix()
if (length(vertices) < 2) {return(NULL)}
for (i in vertices)
{
for (j in vertices)
{
condition <- are_adjacent(graph,i,j)
ifelse(condition,
out <- rbind(out, get.edge.ids(graph, c(i, j), directed=TRUE)),
next)
}
}
return(out[!is.na(out)])
}
Есть ли способ сделать это быстрее?