Learn R Programming

chessboard

Table of contents

Overview

The package chessboard provides functions to work with directed (asymmetric) and undirected (symmetric) spatial (or non-spatial) networks. It implements different methods to detect neighbors, all based on the chess game (it goes beyond the rook and the queen) to create complex connectivity scenarios.

chessboard can handle spatial networks, but it does not explicitly use geographical coordinates to find neighbors (it is not based on spatial distance). Instead, it identifies neighbors according to node labels (i.e. the node position on a two-dimension chessboard) and a specific method (pawn, fool, rook, bishop, knight, queen, wizard, etc.).

It implements the following rules to detect neighbors and create edges:

  • the degree of neighborhood: the number of adjacent nodes that will be used to create direct edges.

  • the orientation of neighborhood: can neighbors be detected horizontally, vertically and/or diagonally?

  • the direction of neighborhood: does the sampling has a main direction? This can be particularly relevant for directed networks (e.g. rivers).

Features

The main purpose of chessboard is to create various network objects, including:

  • node list
  • edge list
  • connectivity matrix

chessboard also provides different plotting functions (all based on the ggplot2 package):

Read the Visualization tools vignette for further details.

Finally, the package can also produce objects that will be used later in Moran’s Eigenvector Maps (MEM, Dray et al. 2006) and Asymetric Eigenvector Maps (AEM, Blanchet et al. 2008), methods available in the package adespatial (Dray et al. 2023):

  • edges weights matrix
  • spatial weights matrix
  • nodes by edges matrix
  • edges weights vector

Installation

The package is not yet published on the CRAN but you can install the development version from GitHub with:

# install.packages("remotes")
remotes::install_github("frbcesab/chessboard")

Then you can attach the package chessboard:

library("chessboard")

Get started

For an overview of the main features of chessboard, please read the Get started vignette.

Long-form documentations

chessboard provides three vignettes to learn more about the package:

  • the Get started vignette describes the core features of the package
  • the Chess pieces vignette details the different methods implemented in chessboard to detect neighbors
  • the Visualization tools vignette describes the plotting functions available in chessboard

Citation

Please cite chessboard as:

Casajus N, Rievrs Borges E, Tabacchi E, Fried G & Mouquet N (2023) chessboard: An R package for creating network connections based on chess moves. Journal of Open Source Software, 8, 5753. https://doi.org/10.21105/joss.05753.

Contributing

All types of contributions are encouraged and valued. For more information, check out our Contributor Guidelines.

Please note that the chessboard project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

Acknowledgments

This package has been developed for the FRB-CESAB working group Bridge that aims to better understand the role of local and regional environmental factors in shaping the taxonomic and functional diversity of plant communities established along river corridors, roadside corridors and cultivated field margins.

References

Blanchet FG, Legendre P & Borcard D (2008) Modelling directional spatial processes in ecological data. Ecological Modelling, 215, 325-336. doi: 10.1016/j.ecolmodel.2008.04.001.

Csardi G & Nepusz T (2006) The igraph software package for complex network research. InterJournal, Complex Systems, 1695, 1-9. https://igraph.org/.

Dray S, Bauman D, Blanchet G et al. (2023) adespatial: Multivariate Multiscale Spatial Analysis. R package version 0.3-21, https://CRAN.R-project.org/package=adespatial.

Dray S, Legendre P & Peres-Neto PR (2006) Spatial modeling: a comprehensive framework for principal coordinate analysis of neighbor matrices (PCNM). Ecological Modelling, 196: 483–93. doi: 10.1016/j.ecolmodel.2006.02.015.

Copy Link

Version

Install

install.packages('chessboard')

Monthly Downloads

239

Version

0.1

License

GPL (>= 2)

Issues

Pull Requests

Stars

Forks

Maintainer

Nicolas Casajus

Last Published

October 14th, 2023

Functions in chessboard (0.1)

connectivity_matrix

Create a connectivity matrix from an edge list
bishop_left

Find neighbors according to bishop left movement
bishop_right

Find neighbors according to bishop right movement
distance_euclidean

Compute the pairwise Euclidean distance
append_matrix

Combine several connectivity matrices
create_node_labels

Create unique node labels
chessboard-package

chessboard: Create Network Connections Based on Chess Moves
geom_edges

Link neighbors by arrow on a chessboard
geom_neighbors

Highlight neighbors on a chessboard
edges_to_sf

Convert edge list to spatial object
geom_node

Highlight a node on a chessboard
gg_matrix

Plot a connectivity or a nodes-by-edges matrix
edges_weights_vector

Create an edges weights vector
get_node_list

Get the list of nodes
fool

Find neighbors according to fool movement
edges_weights_matrix

Create an edges weights matrix
gg_chessboard

Plot a sampling as a chessboard
knight

Find neighbors according to knight movement
%>%

Pipe operator
rook

Find neighbors according to rook movement
spatial_weights_matrix

Create a spatial weights matrix
queen

Find neighbors according to queen movement
pawn

Find neighbors according to pawn movement
nodes_by_edges_matrix

Create a nodes-by-edges matrix
knight_left

Find neighbors according to knight left movement
wizard

Find neighbors according to wizard movement
knight_right

Find neighbors according to knight right movement
matrix_to_edge_list

Convert an connectivity matrix to an edge list
create_edge_list

Create an edge list
bishop

Find neighbors according to bishop movement
append_edge_lists

Append several edge lists