Рассмотрим этот простой пример
library(tidygraph)
mynodes <- tibble(id = c(1,2,3,4,5))
myedges <- tibble(from = c(1,1,1,5),
to = c(1,2,3,4),
power = c(10,10,10,3))
tbl_graph(nodes = mynodes, edges = myedges)
# A tbl_graph: 5 nodes and 4 edges
#
# A directed multigraph with 2 components
#
# Node Data: 5 x 1 (active)
id
<dbl>
1 1
2 2
3 3
4 4
5 5
#
# Edge Data: 4 x 3
from to power
<int> <int> <dbl>
1 1 1 10
2 1 2 10
3 1 3 10
# ? with 1 more row
Я знаю, что могу использовать filter
для простой фильтрации узлов или ребер.
Моя проблема заключается в том, как отфильтровать узлы на основе условия на краях.
Например, при выполнении:
mygraph %>% activate(edges) %>% filter(power == 3)
будет по-прежнему возвращаться все узлы, что раздражает при построении (эти узлы не будут иметь ребер!).
Как сохранить все узлы, связанные с моим отфильтрованным набором ребер?
# A tbl_graph: 5 nodes and 1 edges
#
# A rooted forest with 4 trees
#
# Edge Data: 1 x 3 (active)
from to power
<int> <int> <dbl>
1 5 4 3
#
# Node Data: 5 x 1
id
<dbl>
1 1
2 2
3 3
# ? with 2 more rows