如何在igraph中提取子图

How to extract subgraph in igraph

我想围绕该节点提取一个子图。

library(visNetwork)
library(igraph)
library(dplyr)

g<-data.frame(a=c(LETTERS[1:5], LETTERS[2:6]),b=c(LETTERS[2:6],  LETTERS[7:11])) %>% 
        as.matrix %>% graph.edgelist() 

visIgraph(g) %>% 
       visHierarchicalLayout(sortMethod = "directed", 
                             direction = "LR",levelSeparation = 300)

我想从 "D" 开始提取子图,像这样

data.frame(a=c(LETTERS[1:5], LETTERS[2:6]), b=c(LETTERS[2:6], LETTERS[7:11])) %>% 
    as.matrix %>% .[c(4,5,8,9,10),1:2] %>% 
    graph.edgelist() %>% visIgraph() %>% 
    visHierarchicalLayout(sortMethod = "directed", 
                          direction = "LR", levelSeparation = 300)

有办法得到吗?谢谢

您是否尝试过 induced.subgraph() 函数?

new.vertices<- V(g)[-c(1,2,3,7,8)]
g.sub <- induced.subgraph(graph = g, new.vertices)
visIgraph(g.sub) %>% 
  visHierarchicalLayout(sortMethod = "directed", 
                        direction = "LR",levelSeparation = 300)