简体   繁体   中英

(R Igraph) Using affilliation to create subgraph from adjacency matrix

I need to create a subgraph from an adjacency matrix selecting by affiliation data. How do I match an adjacency and an affiliation matrix?

Take the following adjacency matrix:

    A   B   C   D   E   F   G
A   0   1   0   1   0   1   0
B   1   0   1   1   0   1   0
C   0   1   0   0   0   0   0
D   1   1   0   0   1   1   0
E   0   0   0   1   0   1   0
F   1   1   0   1   1   0   1
G   0   0   0   0   0   1   0

And the following affiliation matrix:

    P   R   Q
A   1   1   0
B   1   0   1
C   1   1   0
D   0   1   0
E   1   0   1
F   0   0   1
G   1   1   0

How do I create a subgraph from the adjacency matrix only with the nodes corresponding to P in the affiliation matrix?

If your goal is to:

  • filter out nodes from your adjacency matrix where the corresponding P is 1 in the affiliation matrix
  • convert filtered adjacency matrix to an igraph object

then you can accomplish that with the following:

# the names(which()) isn't needed for the subset of adj
p_nodes <- names(which(aff[,"P"] == 1))
p_adj   <- adj[p_nodes, p_nodes]

p_graph <- igraph::graph.adjacency(p_graph)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM