我有一个像这样的图:
我需要提取图中只包含从根节点(n2)到红色叶子节点的所有路径的一部分。我发现在R中可以通过以下命令提取节点的邻居,如n6和n7:
level = 2
subg1 <- graph.neighborhood(cGraph, level, "n6", mode=c('in'))
subg2 <- graph.neighborhood(cGraph, level, "n7", mode=c('in'))
然后合并 subg1 和 subg2。
但问题是: 1. 我的条件是直到达到像 n2(根)这样的节点,而不是层级。
%%%%%%%%%%%%%%%%%%%%%%%%%
我也尝试了以下方法,但存在两个问题:
finalshortest = get.all.shortest.paths(finalSubg1, c("n2"), to = V(finalSubg1)[color=="red"],mode="out")
for (p in finalshortest$res) {
finalsubgraph <- graph.union(induced.subgraph(finalSubg1,V(finalSubg1)[p]), finalsubgraph)
finalsubgraph <- graph.union(subgraph.edges(finalSubg1,E(finalSubg1,path=p)), finalsubgraph)
}
plot(finalsubgraph)
- get.all.shortest.paths不能给出所有路径,只能给出最短路径。例如,图中有从n2到n6的两条路径。
- 最终的图不具备原始图的相同属性。
请帮助大家,谢谢!