确定根和终端顶点之间的路径?

时间:2017-11-30 20:47:27

标签: r graph terminal nodes igraph

我已经获得了一些代码(由你善意的人提供),它们在一个大图(n = 266)中找到了我的根和终端节点,它代表了北极地区融冰和破碎浮冰块的血统:

setPushNotificationsRegistrationId()

当我在控制台中输入'roots'和'终端'时,我分别得到6和11个观测值的观测值。

我现在要做的是计算每个组合之间的节点路径。例如,我可以用这些数据制作矩阵吗?我对R很新,所以我仍然很难有远见地知道如何在编码方面处理这些问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

以下是一个例子:

library(igraph)
set.seed(1)
g <- random.graph.game(10, .15, directed = TRUE)

roots = which(sapply(sapply(V(g),
  function(x) neighbors(g, x, mode = 'in')), length) == 0)
terminals = which(sapply(sapply(V(g),
  function(x) neighbors(g, x, mode = 'out')), length) == 0)
roots
# [1] 2 4
terminals
# [1] 1 5 8
(paths <- lapply(roots, all_simple_paths, graph=g, to=terminals))
# [[1]]
# [[1]][[1]]
# + 2/10 vertices, from 1951039:
#   [1] 2 5
# 
# [[1]][[2]]
# + 4/10 vertices, from 1951039:
#   [1] 2 6 3 8
# 
# [[1]][[3]]
# + 5/10 vertices, from 1951039:
#   [1]  2  6  3 10  8
# ......

结帐?all_simple_paths,也可以查看?all_shortest_paths