Я пытаюсь написать скрипт в R, чтобы идентифицировать элементы (ребра и вершины), принадлежащие циклам графика.R/igraph: получение списка соседей вершин в обратном вызове глубины поиска приводит к закрытию R. Любое предложение?
Я использую функцию обратного вызова в файле graph.dfs (igraph R). Я не хочу изменять график, просто хочу построить новый список посещенных вершин (и обновлять его) каждый раз, когда алгоритм dfs посещает вершину. Проблема в том, что программа R закрывается, если я запускаю следующий код. Возможно, что-то не так - любое предложение/помощь?
#create a simple graph with 4 nodes and 1 cycle
gIncidenceMatrix <- matrix (c(0,1,1,1,1,0,0,0,1,0,0,1,1,0,1,0), nrow=4, ncol=4, byrow=T)
g <- graph.adjacency(gIncidenceMatrix, mode = "undirected")
f.cycleDetection <- function(g, data, extra) {
vId <- data[1]
nVertices <- neighbors(g, vId+1, mode = 1) #vId + 1 is to avoid having index 0 (any suggestion?)
FALSE
}
graph.dfs(g, root=1, neimode = "all", unreachable = TRUE, order = FALSE, order.out = FALSE, father = FALSE, dist = FALSE, in.callback = f.cycleDetection, out.callback = NULL, extra = NULL, rho = parent.frame())
Я нашел следующую нить (R/igraph : any call to get/set vertex attribute within a depth-first-search callback causes a segfault), но это выглядит его ответ сосредоточен в изменении свойств элементов графа внутри функции обратного вызова, которая несколько отличается от того, что я пытаюсь сделать.
Заранее спасибо за поддержку, JP
благодарит Габора за предложение. Это решило проблему. – jpl