spam
is a collection of functions for sparse matrix
algebra.
What is spam and what is it not:
While Matrix
seems an overshoot of classes and SparseM
focuses mainly on regression type problem, we provide a minimal set of
sparse matrix functions fully functional for everyday spatial statistics
life. There is however some emphasize on Markov chain Monte Carlo type
calculations within the framework of (Gaussian) Markov random fields.
Emphasis is given on a comprehensive, simple, tutorial structure of the
code. The code is S4 based but (in a tutorial spirit) the functions are
in a S3 structure visible to the user (exported via NAMESPACE
).
There exist many methods for sparse matrices that work identically as in
the case of ordinary matrices. All the methods are discussed in the help
and can be accessed directly via a *.spam
concatenation to the
function. For example, help(chol.spam)
calls the help
directly. We deliberately avoided aliases according to analogue helps from the
base package.
Sparseness is used when handling large matrices. Hence, care has been used to provide efficient and fast routines. Essentially, the functions do not transform the sparse structure into full matrices to use standard (available) functionality, followed by a back transform. We agree, more operators, functions, etc. should eventually be implemented.
The packages fields
and spam
are closely linked.
Reinhard Furrer, with the help of Florian Gerber, Kaspar
Moesinger and many others.
Some Fortran routines were written by Youcef Saad, Esmond G. Ng, Barry W. Peyton, Joseph W.H. Liu, Alan D. George.
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,
tools:::Rd_expr_doi("10.18637/jss.v036.i10").
Florian Gerber, Reinhard Furrer (2015).
"Pitfalls in the Implementation of Bayesian Hierarchical Modeling of Areal Count Data: An Illustration Using BYM and Leroux Models.",
Journal of Statistical Software, Code Snippets, 63(1), 1-32,
tools:::Rd_expr_doi("10.18637/jss.v063.c01").
F. Gerber, K. Moesinger, R. Furrer (2017),
"Extending R packages to support 64-bit compiled code: An illustration with spam64 and GIMMS NDVI3g data.",
Computer & Geoscience 104, 109-119, tools:::Rd_expr_doi("10.1016/j.cageo.2016.11.015")."
See spam.class
for a detailed class description,
spam
and spam.ops
for creation,
coercion and algebraic operations. options
.
## Citations:
citation('spam')
citation('spam', auto=TRUE)
## History of changes
if (FALSE) {
file.show(system.file("NEWS.md", package = "spam"))
}
Run the code above in your browser using DataLab