1

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)

enter image description here

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 :

enter image description here

Wilcar
  • 2,349
  • 2
  • 21
  • 48

1 Answers1

1

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]))

enter image description here

Roland
  • 127,288
  • 10
  • 191
  • 288