(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=]
如果您的目标是:
- 从你的邻接矩阵中过滤掉在隶属矩阵
中对应的P
是1
的节点
- 将过滤后的邻接矩阵转换为
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)
我需要根据从属关系数据选择的邻接矩阵创建一个子图。如何匹配邻接矩阵和从属矩阵?
取如下邻接矩阵:
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=]
如果您的目标是:
- 从你的邻接矩阵中过滤掉在隶属矩阵 中对应的
- 将过滤后的邻接矩阵转换为
igraph
对象
P
是1
的节点
那么您可以通过以下方式完成:
# 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)