| knight {chessboard} | R Documentation |
Find neighbors according to knight movement
Description
For one node (argument focus), finds neighbors among a list of nodes
according to the knight movement.
This movement is derived from the chess game. The knight is the difference
between the wizard() and the queen().
The detection of neighbors using this method can only work with
two-dimensional sampling (both transects and quadrats).
For sampling of type transects-only or quadrats-only,
please use the functions fool() or pawn(), respectively.
Usage
knight(
nodes,
focus,
degree = 1,
directed = FALSE,
reverse = FALSE,
self = FALSE
)
Arguments
nodes |
a |
focus |
an |
degree |
an |
directed |
a |
reverse |
a |
self |
a |
Details
This function is internally called by create_edge_list() but it can be
directly used to 1) understand the neighbors detection method, and 2) to
check detected neighbors for one particular node (focus).
Value
A subset of the nodes (data.frame) where each row is a neighbor
of the focal node.
Examples
library("chessboard")
# Two-dimensional sampling (only) ----
sites_infos <- expand.grid("transect" = 1:9, "quadrat" = 1:9)
nodes <- create_node_labels(data = sites_infos,
transect = "transect",
quadrat = "quadrat")
focus <- "5-5"
# Default settings ----
neighbors <- knight(nodes, focus, degree = 2)
gg_chessboard(nodes) +
geom_node(nodes, focus) +
geom_neighbors(nodes, neighbors)
# Higher degree of neighborhood ----
neighbors <- knight(nodes, focus, degree = 3)
gg_chessboard(nodes) +
geom_node(nodes, focus) +
geom_neighbors(nodes, neighbors)
# Directed (default orientation) ----
neighbors <- knight(nodes, focus, degree = 3, directed = TRUE)
gg_chessboard(nodes) +
geom_node(nodes, focus) +
geom_neighbors(nodes, neighbors)
# Directed (reverse orientation) ----
neighbors <- knight(nodes, focus, degree = 3, directed = TRUE,
reverse = TRUE)
gg_chessboard(nodes) +
geom_node(nodes, focus) +
geom_neighbors(nodes, neighbors)