graph-functions: MPSEM Graph Manipulation Functions

graph-functionsR Documentation

MPSEM Graph Manipulation Functions

Description

A set of primitive functions for creating and munipulating MPSEM graphs.

Usage

graph(data = data.frame())

add.vertex(x, data = data.frame())

add.edge(x, from, to, data = data.frame())

rm.edge(x, id)

rm.vertex(x, id)

Arguments

data

A data.frame providing data (and labels) to be assigned to the vertices or edges. It can be an empty data frame with row names providing the vertex labels.

x

A graph-class object.

from

An integer or character vector. References to the origin of the edges to be added.

to

An integer or character vector. The destinations of the edges to be added (vertex references).

id

An integer or character vector. The identity of vertex or edge to be removed (references).

Details

A new graph is populated with vertices using function graph(). The function must be provided with a data frame. This data frame may be a 0 column data frame as long as its row.names attribute contains the number of elements necessary to reference the vertices. Additional vertices can be added later with function add.vertex(). The graph thus created contains no edge; the latter are added using function add.edge(). Edges and vertices are removed using functions rm.edge() and rm.vertex(), respectively.

Functions

  • graph(): Create Graph

    Create a graph and populates it with vertices.

  • add.vertex(): Add Vertices

    Add vertices to an existing graph.

  • add.edge(): Add Edges

    Add edges to a graph.

  • rm.edge(): Remove Edges

    Remove edges from a graph.

  • rm.vertex(): Remove Vertices

    Remove vertices from a graph.

Author(s)

Guillaume Guénard [aut, cre] (<https://orcid.org/0000-0003-0761-3072>), Pierre Legendre [ctb] (<https://orcid.org/0000-0002-3838-3305>) Maintainer: Guillaume Guénard <guillaume.guenard@umontreal.ca>

References

Guénard, G., Legendre, P., and Peres-Neto, P. 2013. Phylogenetic eigenvector maps: a framework to model and predict species traits. Methods in Ecology and Evolution 4: 1120-1131

Makarenkov, V., Legendre, L. & Desdevise, Y. 2004. Modelling phylogenetic relationships using reticulated networks. Zoologica Scripta 33: 89-96

Blanchet, F. G., Legendre, P. & Borcard, D. 2008. Modelling directional spatial processes in ecological data. Ecological Modelling 215: 325-336

Examples


## Populate a graph with 7 vertices labeled A-G and edge properties x and y:
data.frame(
  quantitative = c(1.1,7.2,7.2,4.1,5.5,6.9,3.3),
  factor = factor(c("A","A","A","B","B","B","B")),
  row.names = c("A","B","C","D","E","F","G")
) %>%
  graph -> x

## Note from package magrittr:
## x %>% f(y, z)    is equivalent to f(x, y, z)
## x %<>% f(y, z)   is equivalent to x <- f(x, y, z)

## Add three vertices without descriptors:
x %>% add.vertex(
  data = data.frame(row.names = c("H","I","J"))
)

## This is another way to add vertices:
x %<>% add.vertex(
  data = data.frame(
    factor = factor(c("C","C","C")),
    ordered = ordered(c(1,2,2)),
    row.names = c("H","I","J")
  )
)

## Adding 10 edges, labeled E1-E10 and with properties d and r, to the graph:
x %<>% add.edge(
  from = c("A","B","B","C","C","D","D","E","E","F"),
  to = c("A","C","D","E","F","F","G","H","I","J"),
  data = data.frame(
    distance = c(1,5,2,3,3,2,5,1,1,1),
    reversible = c(TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE),
    row.names = paste("E",1:10,sep="")
  )
)

## Adding three more edges, this time without variable 'reversible', but
## adding a variable called 'factor':
x %<>% add.edge(
  from = c("E","F","G"),
  to = c("A","B","C"),
  data.frame(
    distance = c(2,3,1),
    factor = factor(c("S","S","G")),
    row.names = c("E1","E11","E23")
  )
)

## Removing two edges (E3 and E5):
x %<>% rm.edge(id=c("E3","E5"))

## Removing vertices B, F, and G with their associated edges:
x %<>% rm.vertex(id=c("B","F","G"))



guenardg/MPSEM documentation built on April 14, 2025, 3:53 p.m.