如何解决对 from 参数中的多个名称运行 all_simple_paths()
我有下面的节点和边数据集,我想知道我是否可以一次运行多个名称的简单路径函数,而不是一次运行一个。
name<-c("Robert Zero","Amy Adams","Barry Beane","Henry Handler","Julie Jones","Charlie Cheese","Karen Klein","Lolly Landswright","Imogene Isler","David Dufresne","Frank Flaherty","Egbert English","George Graham","Molly McKee","norman Needle","Oscar Oliver","Peter Platteville","Quincy Quebec","Roger Rabbit","Steve Sweet","Tom Thompson","Victor Valentino","Ulrich Uxbridge" )
label<-c("Robert Zero","Ulrich Uxbridge" )
nodes<-data.frame(name,label)
from<-c("Robert Zero","Robert Zero","Ulrich Uxbridge","Tom Thompson" )
to<-c( "Amy Adams","Roger Rabbit" )
edges<-data.frame(from,to)
#Combine them in order to create the graph object
library(igraph)
library(dplyr)
gph <- graph_from_data_frame(edges,directed=TRUE,vertices=nodes)
#Create the simple paths asp
asp <- all_simple_paths(gph,"Robert Zero")
asp2 <- all_simple_paths(gph,"Amy Adamas","Robert Zero")
相反,我想要类似的东西:
asp <- all_simple_paths(gph,c("Steve Sweet","Amy Adams"),"Robert Zero")
这会立即给我 12 条路径
解决方法
用sapply
试试all_simple_paths
asp <- unlist(
sapply(
c("Steve Sweet","Amy Adams"),all_simple_paths,graph = gph,to = "Robert Zero"
),recursive = FALSE
)
给出
> asp
$`Steve Sweet1`
+ 4/23 vertices,named,from 6674620:
[1] Steve Sweet Tom Thompson Roger Rabbit Robert Zero
$`Steve Sweet2`
+ 4/23 vertices,from 6674620:
[1] Steve Sweet Tom Thompson Victor Valentino Robert Zero
$`Steve Sweet3`
+ 5/23 vertices,from 6674620:
[1] Steve Sweet Ulrich Uxbridge Barry Beane Henry Handler
[5] Robert Zero
$`Steve Sweet4`
+ 5/23 vertices,from 6674620:
[1] Steve Sweet Ulrich Uxbridge Barry Beane Charlie Cheese
[5] Robert Zero
$`Steve Sweet5`
+ 5/23 vertices,from 6674620:
[1] Steve Sweet Ulrich Uxbridge Barry Beane Imogene Isler
[5] Robert Zero
$`Steve Sweet6`
+ 5/23 vertices,from 6674620:
[1] Steve Sweet Ulrich Uxbridge Barry Beane Peter Platteville
[5] Robert Zero
$`Steve Sweet7`
+ 5/23 vertices,from 6674620:
[1] Steve Sweet Ulrich Uxbridge Barry Beane Roger Rabbit
[5] Robert Zero
$`Amy Adams1`
+ 4/23 vertices,from 6674620:
[1] Amy Adams Barry Beane Henry Handler Robert Zero
$`Amy Adams2`
+ 4/23 vertices,from 6674620:
[1] Amy Adams Barry Beane Charlie Cheese Robert Zero
$`Amy Adams3`
+ 4/23 vertices,from 6674620:
[1] Amy Adams Barry Beane Imogene Isler Robert Zero
$`Amy Adams4`
+ 4/23 vertices,from 6674620:
[1] Amy Adams Barry Beane Peter Platteville Robert Zero
$`Amy Adams5`
+ 4/23 vertices,from 6674620:
[1] Amy Adams Barry Beane Roger Rabbit Robert Zero
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。