在能量系统中工作,我试图识别从父母到孩子的所有路径,如下图所示,用R表示。
我已经找到了非常有用的库igraph
,但无法实现我的目标。
我是一个新手图论,因此请宽容我时,使用错误的术语。
我在寻找这样的结果1 -> 2 -> 3
1 -> 2 -> 4
5 -> 4
4 -> 6 -> 4
我可以确认父母的身份:1,5,4
和“最后一个子代”3,4
library(igraph)
df <- data.frame(c(1,2,2,5,6,4),c(2,3,4,4,4,6))
df_graph <- graph_from_data_frame(df)
plot(df_graph)
2条答案
按热度按时间ewm0tg9j1#
可以使用
all_simple_paths
来查找从一个顶点到一组其他顶点的所有路径。例如,下面的代码查找从1到3或4的所有路径。注意,由于图是从 Dataframe 创建的,因此顶点具有与其索引不一致的字符串名称:
这就是为什么必须引用顶点名称的原因。如果我们传入
3
而不是"3"
,它将被解释为第三个顶点,即顶点"5"
。为了避免这种不便,可以使用graph_from_edgelist(as.matrix(df))
,它将输入解释为顶点ID而不是顶点名称。r7knjye22#
不要讨论
fathers
、children
和ends
,而是使用试试这个。