spam {spam} | R Documentation |
Sparse Matrix Class
Description
This group of functions evaluates and coerces changes in class structure.
Usage
spam(x, nrow = 1, ncol = 1, eps = getOption("spam.eps"))
as.spam(x, eps = getOption("spam.eps"))
is.spam(x)
Arguments
x |
is a matrix (of either dense or sparse form), a list, vector object or a distance object |
nrow |
number of rows of matrix |
ncol |
number of columns of matrix |
eps |
A tolerance parameter: elements of |
Details
The functions spam
and as.spam
act like matrix
and as.matrix
to coerce an object to a sparse matrix object of class spam
.
If x
is a list, it should contain either two or three elements.
In case of the former, the list should contain a n
by two
matrix of indicies (called ind
) and the values.
In case of the latter, the list should contain three vectors
containing the row, column indices (called i
and
j
) and the values. In both cases partial matching is done.
In case there are several triplets with the same i
, j
,
the values are added.
eps
should be at least as large as .Machine$double.eps
.
If getOption("spam.force64")
is TRUE
, a 64-bit
spam matrix is returned in any case. If FALSE
, a 32-bit
matrix is returned when possible.
Value
A valid spam
object.
is.spam
returns TRUE
if x
is a spam
object.
Note
The zero matrix has the element zero stored in (1,1).
The functions do not test the presence of NA/NaN/Inf
. Virtually
all call a Fortran routine with the NAOK=NAOK
argument, which defaults to FALSE
resulting in an error.
Hence, the NaN
do not always properly propagate through (i.e.
spam
is not IEEE-754 compliant).
Author(s)
Reinhard Furrer
References
Reinhard Furrer, Stephan R. Sain (2010). "spam: A Sparse Matrix R Package with Emphasis on MCMC Methods for Gaussian Markov Random Fields.", Journal of Statistical Software, 36(10), 1-25, doi:10.18637/jss.v036.i10.
See Also
SPAM
for a general overview of the package;
spam_random
to create matrices with a random sparsity pattern;
cleanup
to purge a sparse matrix;
spam.options
for details about the safemode
flag;
read.MM
and foreign
to create spam
matrices from MatrixMarket
files and from certain Matrix or SparseM formats.
Examples
# old message, do not loop, when you create a large sparse matrix
set.seed(13)
nz <- 128
ln <- nz^2
smat <- spam(0,ln,ln)
is <- sample(ln,nz)
js <- sample(ln,nz)
## IGNORE_RDIFF_BEGIN
system.time(for (i in 1:nz) smat[is[i], js[i]] <- i)
system.time(smat[cbind(is,js)] <- 1:nz)
## IGNORE_RDIFF_END
getClass("spam")
options(spam.NAOK=TRUE)
as.spam(c(1, NA))