Within a graph's internal node data frame (ndf), mutate numeric node attribute values using one or more expressions.
Arguments
- graph
A graph object of class
dgr_graph
.- ...
Expressions used for the mutation of node attributes. LHS of each expression is either an existing or new node attribute name. The RHS can consist of any valid R code that uses node attributes as variables. Expressions are evaluated in the order provided, so, node attributes created or modified are ready to use in subsequent expressions.
See also
Other node creation and removal:
add_n_node_clones()
,
add_n_nodes()
,
add_n_nodes_ws()
,
add_node()
,
add_node_clones_ws()
,
add_node_df()
,
add_nodes_from_df_cols()
,
add_nodes_from_table()
,
colorize_node_attrs()
,
copy_node_attrs()
,
create_node_df()
,
delete_node()
,
delete_nodes_ws()
,
drop_node_attrs()
,
join_node_attrs()
,
layout_nodes_w_string()
,
mutate_node_attrs_ws()
,
node_data()
,
recode_node_attrs()
,
rename_node_attrs()
,
rescale_node_attrs()
,
set_node_attr_to_display()
,
set_node_attr_w_fcn()
,
set_node_attrs()
,
set_node_attrs_ws()
,
set_node_position()
Examples
# Create a graph with 3 nodes
graph <-
create_graph() %>%
add_path(n = 3) %>%
set_node_attrs(
node_attr = width,
values = c(1.4, 0.3, 1.1))
# Get the graph's internal ndf
# to show which node attributes
# are available
graph %>% get_node_df()
#> id type label width
#> 1 1 <NA> 1 1.4
#> 2 2 <NA> 2 0.3
#> 3 3 <NA> 3 1.1
# Mutate the `width` node
# attribute, dividing each
# value by 2
graph <-
graph %>%
mutate_node_attrs(
width = width / 2)
# Get the graph's internal
# ndf to show that the node
# attribute `width` had its
# values changed
graph %>% get_node_df()
#> id type label width
#> 1 1 <NA> 1 0.70
#> 2 2 <NA> 2 0.15
#> 3 3 <NA> 3 0.55
# Create a new node attribute,
# called `length`, that is the
# log of values in `width` plus
# 2 (and, also, round all values
# to 2 decimal places)
graph <-
graph %>%
mutate_node_attrs(
length = (log(width) + 2) %>%
round(2))
# Get the graph's internal ndf
# to show that the node attribute
# values had been mutated
graph %>% get_node_df()
#> id type label width length
#> 1 1 <NA> 1 0.70 1.64
#> 2 2 <NA> 2 0.15 0.10
#> 3 3 <NA> 3 0.55 1.40
# Create a new node attribute
# called `area`, which is the
# product of the `width` and
# `length` attributes
graph <-
graph %>%
mutate_node_attrs(
area = width * length)
# Get the graph's internal ndf
# to show that the node attribute
# values had been multiplied
# together (with new attr `area`)
graph %>% get_node_df()
#> id type label width length area
#> 1 1 <NA> 1 0.70 1.64 1.148
#> 2 2 <NA> 2 0.15 0.10 0.015
#> 3 3 <NA> 3 0.55 1.40 0.770