As a tbl_graph can be considered as a collection of two linked tables it is necessary to specify which table is referenced during manipulations. The activate verb does just that and needs affects all subsequent manipulations until a new table is activated. active is a simple query function to get the currently acitve context. In addition to the use of activate it is also possible to activate nodes or edges as part of the piping using the %N>% and %E>% pipes respectively. Do note that this approach somewhat obscures what is going on and is thus only recommended for quick, one-line, fixes in interactive use.

activate(.data, what)


lhs %N>% rhs

lhs %E>% rhs


.data, x, lhs

A tbl_graph or a grouped_tbl_graph


What should get activated? Possible values are nodes or edges.


A function to pipe into


A tbl_graph


Activate will ungroup a grouped_tbl_graph.


gr <- create_complete(5) %>%
  activate(nodes) %>%
  mutate(class = sample(c('a', 'b'), 5, TRUE)) %>%
  activate(edges) %>%

# The above could be achieved using the special pipes as well
gr <- create_complete(5) %N>%
  mutate(class = sample(c('a', 'b'), 5, TRUE)) %E>%
# But as you can see it obscures what part of the graph is being targeted