Learn R Programming

spam (version 0.29-2)

spam: Sparse Matrix Class

Description

This group of functions evaluates and coerces changes in class structure.

Usage

spam(x, nrow = 1, ncol = 1, eps = .Spam$eps)

as.spam(x, eps = .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 x such that abs(x) < eps set to zero. Defaults to eps = .Spam$eps

Value

  • A valid spam object. is.spam returns TRUE if x is a spam object.

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.

References

http://en.wikipedia.org/wiki/Sparse_matrix as a start.

See Also

SPAM for a 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 or SparseM formats.

Examples

Run this code
# 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))

Run the code above in your browser using DataLab