spam {spam} | R Documentation |
This group of functions evaluates and coerces changes in class structure.
spam(x, nrow = 1, ncol = 1, eps = .Spam$eps) as.spam(x, eps = .Spam$eps) is.spam(x)
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 x such that
abs(x) < eps set to zero. Defaults to eps = .Spam$eps |
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.
eps
should be at least as large as .Machine$double.eps
.
A valid spam
object.
is.spam
returns TRUE
if x
is a spam
object.
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=!.Spam$safemode[3]
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).
Reinhard Furrer
http://en.wikipedia.org/wiki/Sparse_matrix as a start.
SPAM
general overview of the package.
spam.options
for details about the safemode
flag.
read.MM
and foreign
to create spam
matrices from MatrixMarket
files and from certain Matrix/SparseM
formats.
# 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) system.time(for (i in 1:nz) smat[is[i], js[i]] <- i) system.time(smat[cbind(is,js)] <- 1:nz) getClass("spam") try(as.spam.numeric(NA))