The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

sparseLRMatrix

Codecov test coverage R-CMD-check

sparseLRMatrix provides a single matrix S4 class called sparseLRMatrix which represents matrices that can be expressed as the sum of sparse matrix and a low rank matrix. We also provide an efficient SVD method for these matrices by wrapping the RSpectra SVD implementation.

Eventually, we will fully subclass Matrix::Matrix objects, but the current implementation is extremely minimal.

Installation

You can install the released version of sparseLRMatrix from CRAN with:

# install.packages("remotes")
remotes::install_github("RoheLab/sparseLRMatrix")

Usage

library(sparseLRMatrix)
#> Loading required package: Matrix
library(RSpectra)

set.seed(528491)

n <- 50
m <- 40
k <- 3

A <- rsparsematrix(n, m, 0.1)

U <- Matrix(rnorm(n * k), nrow = n, ncol = k)
V <- Matrix(rnorm(m * k), nrow = m, ncol = k)

# construct the matrix, which represents A + U %*% t(V)
X <- sparseLRMatrix(sparse = A, U = U, V = V)

s <- svds(X, 5)  # efficient

And a quick sanity check

Y <- A + tcrossprod(U, V)
s2 <- svds(Y, 5)  # inefficient, but same calculation

# singular values match up, you can check for yourself
# that the singular vectors do as well!
all.equal(s$d, s2$d)
#> [1] TRUE

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.