| 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))