The matrixStats package provides highly optimized functions for computing common summaries over rows and columns of matrices, e.g. rowQuantiles(). There are also functions that operate on vectors, e.g. logSumExp(). Their implementations strive to minimize both memory usage and processing time. They are often remarkably faster compared to good old apply() solutions. The calculations are mostly implemented in C, which allow us to optimize beyond what is possible to do in plain R. The package installs out-of-the-box on all common operating systems, including Linux, macOS and Windows.
With a matrix
it is many times faster to calculate medians column by column using
than using
Moreover, if performing calculations on a subset of rows and/or columns, using
is much faster and more memory efficient than
For formal benchmarking of matrixStats functions relative to alternatives, see the Benchmark reports.
The objectives of the matrixStats package is to perform operations on matrices (i) as faster as possible, while (ii) not using unnecessary amounts of memory. These objectives drive the design, including the choice of the different defaults.
R package matrixStats is available on CRAN and can be installed in R as:
install.packages("matrixStats")To install the pre-release version that is available in Git branch develop on GitHub, use:
remotes::install_github("HenrikBengtsson/matrixStats", ref="develop")This will install the package from source. Because of this and because this package also compiles native code, Windows users need to have Rtools installed and macOS users need to have Xcode installed.
To contribute to this package, please see CONTRIBUTING.md.