【发布时间】:2019-04-25 14:22:29
【问题描述】:
我正在尝试在具有 2 列的数据框中找到循环路径
例如:
Col1 Col2
A B
C A
B D
D C
所以,A-B-D-C-A 是一条循环路线
df <- sqldf("Select * from circuit as 'A' INNER JOIN circuit as 'B' ON A.'To'= B.'FROM'")
result <- df[df$`FROM`==df$`TO..4`,]
这给了我所有的双向路线,有没有办法可以迭代地执行连接并找到所有可能的循环路线?
【问题讨论】:
-
我觉得您的示例数据有点过于简单,无法提供强大且通用的解决方案。例如,对于更复杂的情况(例如在不明确路径的情况下),您的预期输出是什么?我可能会从图表的角度来解决这个问题。
library(igraph); ig <- graph_from_data_frame(df)将返回一个igraph对象。然后,您可以使用clusters识别连接的子图并从那里开始工作;或使用decompose.graph将ig拆分为连接子图的list。
标签: r