| Matrix {matsbyname} | R Documentation |
Create a Matrix amenable to use in the matsbyname package
Description
The matsbyname package uses Matrix objects for its
default data representation, taking advantage
of the sparse matrix capabilities of Matrix compared
to the base matrix class.
This function routes to Matrix::Matrix(), with some important
differences. See details.
Usage
Matrix(
data = NA,
nrow = 1,
ncol = 1,
byrow = FALSE,
dimnames = base::dimnames(data),
sparse = NULL,
doDiag = FALSE,
forceCheck = FALSE,
rowtype = matsbyname::rowtype(data),
coltype = matsbyname::coltype(data)
)
Arguments
data |
An optional numeric data vector or |
nrow |
When |
ncol |
When |
byrow |
A boolean. If |
dimnames |
A dimnames attribute for the Matrix: a list of two character components.
Default is |
sparse |
A boolean or |
doDiag |
A boolean indicating if a |
forceCheck |
A boolean indicating if the checks for structure should happen
when |
rowtype |
The rowtype for the result. Default is |
coltype |
The coltype for the result. Default is |
Details
This function NEVER creates a symmetric matrix
(e.g., dsCMatrix, dsyMatrix, dsRMatrix, lsyMatrix, nsyMatrix),
because symmetric matrices do not respect some future changes to dimnames,
which can cause information loss in the matsbyname context.
A non-symmetric Matrix is assured by calling as(out, "generalMatrix")
on the outgoing Matrix object.
This function enables setting row and column types at the time of construction
with the rowtype and coltype arguments.
This function has different defaults compared to Matrix::Matrix(), including
Here, the default for
doDiagisFALSE, while the default fordoDiagisTRUEforMatrix::Matrix().Preserves rowtype and coltype on
data.
This function is vectorized over a list of matrix objects supplied to data.
See examples.
Value
A Matrix object.
Examples
# matsbyname::Matrix() will not create a Matrix with a symmetric subclass.
# dgCMatrix is a general matrix.
matsbyname::Matrix(c(1, 0, 2,
0, 0, 0,
2, 0, 0), byrow = TRUE, nrow = 3, ncol = 3)
# But Matrix::Matrix() will create a symmetric matrix.
# dsCMatrix is a symmetric matrix.
Matrix::Matrix(c(1, 0, 2,
0, 0, 0,
2, 0, 0), byrow = TRUE, nrow = 3, ncol = 3)
# matsbyname::Matrix() will not create a diagonal matrix.
# dgeMatrix is a general matrix.
matsbyname::Matrix(c(1, 0,
0, 1), byrow = TRUE, nrow = 2, ncol = 2)
# But Matrix::Matrix() will create a diagonal matrix.
# ddiMatrix is a diagonal matrix.
Matrix::Matrix(c(1, 0,
0, 1), byrow = TRUE, nrow = 2, ncol = 2)
# This function is vectorized over lists of `matrix` objects in `data`.
m <- matrix(c(1, 0, 2,
0, 0, 0,
2, 0, 0), byrow = TRUE, nrow = 3, ncol = 3)
matsbyname::Matrix(list(m, m))