我有一个这样的tibble:
Nodes <- tibble(
Set = c("A","A","A","B","B","C"),
name = c(1,2,3,4,6,5)
)我想生成一个以Nodes作为nodes集的图,并且
Edges <- tibble(
from = c(1,1,4),
to = c(2,3,6)
)作为edges。当然,我想将这个过程推广到任何Nodes。我认为我可以用purrr编写这段代码,但我希望igraph更快,更少麻烦。
从理论上讲,这与以下几点并没有什么不同:
Nodes %>% group_as(Set) %>% complete_graph(by = "name")但我不确定像complete_graph()这样的命令是否存在。它存在play_islands(),但是它的工作方式不同,它假设n(Set)是固定的。
发布于 2022-03-11 09:15:57
尝试从make_full_graph到igraph
with(
Nodes,
do.call(
rbind,
Map(
function(v) {
get.data.frame(
set_vertex_attr(
make_full_graph(length(v)),
name = "name", value = v
)
)
},
split(name, Set)
)
)
)这给
from to
A.1 1 2
A.2 1 3
A.3 2 3
B 4 6https://stackoverflow.com/questions/71433071
复制相似问题