read.graph.RdConstruct a graph-object from a file or a matrix; write graph-object to file
Additional arguments. In inla.read.graph, then it is the
graph definition (object, matrix, character, filename), plus extra
arguments. In inla.write.graph it is extra arguments to
inla.read.graph.
Only read the size of the graph
An inla.graph-object, a (sparse) symmetric matrix, a
filename containing the graph, a list or collection of characters and/or
numbers defining the graph, or a neighbours list with class nb (see
spdep::card and spdep::poly2nb for for details of nb
and an example a function returning an nb object
The filename of the graph.
The mode of the file; 'ascii' for ascii-file or 'binary' for a binary-file (default).
An inla.graph -object
Not used
An inla.graph -object
The output of inla.read.graph, is an inla.graph
object, with elements
is the size of the graph
is a vector with the number of neigbours
is a list-list with the neigbours
list with connected component information
idis a vector with the connected component id for each node
(starting from 1)
nis the number of connected components
nodesis a list-list of nodes belonging to each connected
component
meanis a factor with one level for each connected
component of size larger than one, otherwise NA
Methods
implemented for inla.graph are summary and plot. The
method plot require the libraries Rgraphviz and graph
from the Bioconductor-project, see https://www.bioconductor.org.
## a graph from a file
g.file1 <- tempfile() # E.g. "g.dat"
cat("3 1 1 2 2 1 1 3 0\n", file = g.file1)
g = inla.read.graph(g.file1)
## writing an inla.graph-object to file
g.file2 = inla.write.graph(g, mode="binary", filename = tempfile())
## re-reading it from that file
gg = inla.read.graph(g.file2)
summary(g)
#> n = 3
#> ncc = 2
#> nnbs = (names) 0 1
#> (count) 1 2
summary(gg)
#> n = 3
#> ncc = 2
#> nnbs = (names) 0 1
#> (count) 1 2
if (FALSE) { # \dontrun{
plot(g)
inla.spy(g)
## when defining the graph directly in the call,
## we can use a mix of character and numbers
g = inla.read.graph(c(3, 1, "1 2 2 1 1 3", 0))
inla.spy(c(3, 1, "1 2 2 1 1 3 0"))
inla.spy(c(3, 1, "1 2 2 1 1 3 0"), reordering=3:1)
inla.write.graph(c(3, 1, "1 2 2 1 1 3 0"))
## building a graph from adjacency matrix
adjacent = matrix(0, nrow = 4, ncol = 4)
adjacent[1,4] = adjacent[4,1] = 1
adjacent[2,4] = adjacent[4,2] = 1
adjacent[2,3] = adjacent[3,2] = 1
adjacent[3,4] = adjacent[4,3] = 1
g = inla.read.graph(adjacent)
plot(g)
summary(g)
} # }