(R Igraph)使用affilliation从邻接矩阵创建子图

时间:2017-05-19 22:43:25

标签: r matrix igraph

我需要根据隶属关系数据选择邻接矩阵创建一个子图。如何匹配邻接和隶属矩阵?

采用以下邻接矩阵:

    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对应的节点从邻接矩阵创建子图?

1 个答案:

答案 0 :(得分:1)

如果您的目标是:

  • 从邻接矩阵中过滤出邻接矩阵中相应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)