igraph:从顶点 igraph r 开始查找连续连接的顶点
igraph: find continuously connected vertices starting from a vertex igraph r
输入:
data.frame(from = c(NA, 2, 4, 5, 8, 8, 1),
to = c(1, 3, 7, 6, 9, 10, 11))
from to
NA 1
2 3
4 7
5 6
8 9
8 10
1 11
我想知道如何用igraphselect一个起始顶点,得到所有连续连接的顶点
例子
select(2) -> c(2, 3)
select(4) -> c(4, 7)
select(1) -> c(1, 11)
select(8) -> c(8, 9, 10)
思路是:不知道终点,只知道起点
我想 return 从这一点开始的连续路径
您可以使用 ego
或 all_simple_paths
来查找连接的节点,这会根据您的需要给出略有不同的输出。(ego
给出了指定的邻居一个字符串中的深度,all_simple_paths
按路径方向分隔节点)
#Your example
library(igraph)
g <- graph_from_data_frame(data.frame(from = c(NA, 2, 4, 5, 8, 8, 1),
to = c(1, 3, 7, 6, 9, 10, 11)))
all_simple_paths(g, "2")
# [[1]]
# + 2/12 vertices, named:
# [1] 2 3
ego(g, length(V(g)), "2")
# [[1]]
# + 2/12 vertices, named:
# [1] 2 3
总计:
ego(g, length(V(g)), as.character(c(1,2,4,8)))
或
lapply(as.character(c(1,2,4,8)) , function(x) all_simple_paths(g, from=x))
输入:
data.frame(from = c(NA, 2, 4, 5, 8, 8, 1),
to = c(1, 3, 7, 6, 9, 10, 11))
from to
NA 1
2 3
4 7
5 6
8 9
8 10
1 11
我想知道如何用igraphselect一个起始顶点,得到所有连续连接的顶点
例子
select(2) -> c(2, 3)
select(4) -> c(4, 7)
select(1) -> c(1, 11)
select(8) -> c(8, 9, 10)
思路是:不知道终点,只知道起点 我想 return 从这一点开始的连续路径
您可以使用 ego
或 all_simple_paths
来查找连接的节点,这会根据您的需要给出略有不同的输出。(ego
给出了指定的邻居一个字符串中的深度,all_simple_paths
按路径方向分隔节点)
#Your example
library(igraph)
g <- graph_from_data_frame(data.frame(from = c(NA, 2, 4, 5, 8, 8, 1),
to = c(1, 3, 7, 6, 9, 10, 11)))
all_simple_paths(g, "2")
# [[1]]
# + 2/12 vertices, named:
# [1] 2 3
ego(g, length(V(g)), "2")
# [[1]]
# + 2/12 vertices, named:
# [1] 2 3
总计:
ego(g, length(V(g)), as.character(c(1,2,4,8)))
或
lapply(as.character(c(1,2,4,8)) , function(x) all_simple_paths(g, from=x))