这似乎是一个容易解决的问题,但即使在一周后,我找不到解决方案。
我有一个无向图,有1700多个节点和5000多个边。我想为源节点和其他目标节点过滤/子集此图,而不管邻域的顺序如何。我尝试了以下代码,它适用于此示例数据集,但all_simple_paths
不会终止我的实际数据集。
在这个工作示例中,我展示了A和C& A之间的联系。 F。
library(igraph)
gg <- graph.data.frame(data.frame(n1 = c('A', 'A', 'B', 'A', 'A', 'F', 'E'),
n2 = c('D', 'B', 'C', 'E', 'F', 'C', 'F')),
directed = FALSE,
vertices = LETTERS[1:6])
plot(gg, layout = layout_with_kk(gg))
paths <- all_simple_paths(gg, from = "A", to = c("C", "F"))
gg_s <- subgraph(gg, v = unique(rapply(paths, f = c)))
plot(gg_s, layout = layout_with_kk(gg_s))
我还尝试了subcomponent
和intersection
,但subcomponent
会返回所有可能的连接。我尝试创建自我图形然后做一个交集,但这并没有给出最好的结果。