Reputation: 2513
I have a graph composed of 3 subgraphs :
person1 <- c(0, 0, 1, 3, 6)
person2 <- c(1, 2, 4, 5, 7)
id <- c(0,1, 2, 3, 4, 5, 6, 7)
person <- c("Marc", "Marc","Eric", "Alan", "Henri", "Adele", "Wil", "Marc")
nodes <- data.frame(id, person, stringsAsFactors = FALSE)
union_edges <- data.frame(person1, person2)
library(igraph)
family_tree <- graph_from_data_frame(union_edges)
plot(family_tree)
How can I a select subgraph of all connected nodes based on node id ? For example, selecting one node ( 1, 2, 4 or 0) will gives me this subgraph :
Upvotes: 1
Views: 103
Reputation: 132989
You look at connected clusters:
comps <- components(family_tree)
ids <- names(comps$membership)[comps$membership == comps$membership["1"]]
#[1] "0" "1" "2" "4"
plot(induced_subgraph(family_tree, V(family_tree)[ids]))
Upvotes: 1