Within a graph's internal node data frame (ndf), recode character or numeric node attribute values. Optionally, one can specify a replacement value for any unmatched mappings.

recode_node_attrs(graph, node_attr_from, ..., otherwise = NULL,
  node_attr_to = NULL)

Arguments

graph

a graph object of class dgr_graph.

node_attr_from

the name of the node attribute column from which values will be recoded.

...

single-length character vectors with the recoding instructions. The first component should have the value to replace and the second should have the replacement value (in the form "[to_replace] -> [replacement]", ...).

otherwise

an optional single value for recoding any unmatched values.

node_attr_to

an optional name of a new node attribute to which the recoded values will be applied. This will retain the original node attribute and its values.

Value

a graph object of class dgr_graph.

Examples

# Create a random graph using the # `add_gnm_graph()` function graph <- create_graph() %>% add_gnm_graph( n = 5, m = 10, set_seed = 23) %>% set_node_attrs( node_attr = shape, values = c("circle", "hexagon", "rectangle", "rectangle", "circle")) # Get the graph's internal ndf # to show which node # attributes are available graph %>% get_node_df()
#> id type label shape #> 1 1 <NA> 1 circle #> 2 2 <NA> 2 hexagon #> 3 3 <NA> 3 rectangle #> 4 4 <NA> 4 rectangle #> 5 5 <NA> 5 circle
# Recode the `shape` node # attribute, so that `circle` # is recoded to `square` and that # `rectangle` becomes `triangle` graph <- graph %>% recode_node_attrs( node_attr_from = shape, "circle -> square", "rectangle -> triangle") # Get the graph's internal # ndf to show that the node # attribute values had been recoded graph %>% get_node_df()
#> id type label shape #> 1 1 <NA> 1 square #> 2 2 <NA> 2 hexagon #> 3 3 <NA> 3 triangle #> 4 4 <NA> 4 triangle #> 5 5 <NA> 5 square
# Create a new node attribute, # called `color`, that is based # on a recoding of `shape`; here, # map the square shape to a `red` # color and map all other shapes # to a `green` color graph <- graph %>% recode_node_attrs( node_attr_from = shape, "square -> red", otherwise = "green", node_attr_to = color) # Get the graph's internal ndf # to see the change graph %>% get_node_df()
#> id type label shape color #> 1 1 <NA> 1 square red #> 2 2 <NA> 2 hexagon green #> 3 3 <NA> 3 triangle green #> 4 4 <NA> 4 triangle green #> 5 5 <NA> 5 square red