Wilcar
Wilcar

Reputation: 2513

select subgraph of all connected nodes based on node id

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

Upvotes: 1

Views: 103

Answers (1)

Roland
Roland

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

enter image description here

Upvotes: 1

Related Questions