View source: R/get_similar_nbrs.R
get_similar_nbrs | R Documentation |
With a graph a single node serving as the starting point, get those nodes in a potential neighborhood of nodes (adjacent to the starting node) that have a common or similar (within threshold values) node attribute to the starting node.
get_similar_nbrs(graph, node, node_attr, tol_abs = NULL, tol_pct = NULL)
graph |
A graph object of class |
node |
A single-length vector containing a node ID value. |
node_attr |
The name of the node attribute to use to compare with adjacent nodes. |
tol_abs |
If the values contained in the node attribute |
tol_pct |
If the values contained in the node attribute |
A vector of node ID values.
# Getting similar neighbors can
# be done through numerical comparisons;
# start by creating a random, directed
# graph with 18 nodes and 22 edges
# using the `add_gnm_graph()` function
graph <-
create_graph() %>%
add_gnm_graph(
n = 18,
m = 25,
set_seed = 23) %>%
set_node_attrs(
node_attr = value,
values = rnorm(
n = count_nodes(.),
mean = 5,
sd = 1) %>% round(0))
# Starting with node `10`, we
# can test whether any nodes
# adjacent and beyond are
# numerically equivalent in `value`
graph %>%
get_similar_nbrs(
node = 10,
node_attr = value)
# We can also set a tolerance
# for ascribing similarly by using
# either the `tol_abs` or `tol_pct`
# arguments (the first applies absolute
# lower and upper bounds from the
# value in the starting node and the
# latter uses a percentage difference
# to do the same); try setting `tol_abs`
# with a fairly large range to
# determine if several nodes can be
# selected
graph %>%
get_similar_nbrs(
node = 10,
node_attr = value,
tol_abs = c(1, 1))
# That resulted in a fairly large
# set of 4 neigboring nodes; for
# sake of example, setting the range
# to be very large will effectively
# return all nodes in the graph
# except for the starting node
graph %>%
get_similar_nbrs(
node = 10,
node_attr = value,
tol_abs = c(10, 10)) %>%
length()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.