(R Igraph) 使用从属关系从邻接矩阵创建子图

(R Igraph) Using affilliation to create subgraph from 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

以及以下从属关系矩阵:

    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

如何从邻接矩阵创建一个子图,只有从属矩阵中对应于 P 的节点?[​​=12=]

如果您的目标是:

  • 从你的邻接矩阵中过滤掉在隶属矩阵
  • 中对应的P1的节点
  • 将过滤后的邻接矩阵转换为 igraph 对象

那么您可以通过以下方式完成:

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