as_graph6: Encode network data as 'graph6' symbols

View source: R/as_graph6.R

as_graph6R Documentation

Encode network data as 'graph6' symbols

Description

Generic function encoding undirected networks as 'graph6' symbol(s). See below for available methods.

Usage

as_graph6(object)

## S3 method for class 'matrix'
as_graph6(object)

## S3 method for class 'igraph'
as_graph6(object)

## S3 method for class 'network'
as_graph6(object)

## S3 method for class 'list'
as_graph6(object)

## Default S3 method:
as_graph6(object)

Arguments

object

a matrix, an igraph object or a network object or a list thereof. See Methods section below.

Details

The 'graph6' format is designed for undirected graphs. Error is thrown in case it is given a directed graph.

Value

A character vector of 'graph6' symbols.

Methods (by class)

  • as_graph6(matrix): Expects object to be a square matrix which is interpreted as an adjacency matrix of an undirected graph. The function reads only the upper triangle of the matrix and there is no test whether the matrix is symmetric.

  • as_graph6(igraph): Igraph object needs to be an undirected graph. Requires igraph package.

  • as_graph6(network): Network object needs to be a directed network. Requires network package.

  • as_graph6(list): If object is a list the function is applied to each element. Consequently, it can be a list with a mixture of supported objects classes (adjacency matrices, igraph, or network objects).

  • as_graph6(default): The default method throws an error about an unhandled class.

Examples

# From adjacency matrix ----------------------------------------------------
am <- matrix(c(
  0,1,1,
  1,0,0,
  1,0,0
  ), byrow=TRUE, ncol=3)
as_graph6(am)

# From igraph objects ------------------------------------------------------
if(requireNamespace("igraph", quietly=TRUE)) {
  g <- igraph::graph_from_adjacency_matrix(am, mode = "undirected")
  as_graph6(g)
}

# From network objects -----------------------------------------------------
if(requireNamespace("network", quietly=TRUE)) {
  net <- network::network(am, directed=FALSE)
  as_graph6(net)
}


mbojan/rgraph6 documentation built on Feb. 4, 2024, 3:40 p.m.