Вещи всегда проще, если вы называете, называете свои вершины
set.seed(6857)
g <- sample_smallworld(1, 100, 5, 0.05) #Building a random graph
V(g)$name = 1:vcount(g)
sp <- get.shortest.paths(g, 5, 70, output = "both")
sp1 <- get.shortest.paths(g, 70, 80, output = "both")
Каждый элемент списка может быть объединен вместе с c
, если они находятся на одном графике.Списки узлов можно комбинировать с другими списками узлов того же графа, а списки ребер можно комбинировать с другими списками ребер того же графа
sp2 <- lapply(setNames(names(sp), names(sp)), function(x){
temp <- c(sp[[x]][[1]], sp1[[x]][[1]])
if(x == 'vpath'){
newVPath <- temp$name %>%
rle %>%
.$values %>%
as.character()
return(V(g)[newVPath])
}
return(temp)
})
должно дать вам:
$vpath
+ 6/100 vertices, named, from 94d5cf0:
[1] 5 1 75 70 75 80
$epath
+ 5/500 edges from 94d5cf0 (vertex names):
[1] 1-- 5 1--75 70--75 70--75 75--80
$predecessors
NULL
$inbound_edges
NULL