• Stars
    star
    191
  • Rank 202,877 (Top 4 %)
  • Language
    R
  • Created over 10 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

R package: Methods that Apply to Rows and Columns of Matrices (and to Vectors)
CRAN check status R CMD check status Build status Coverage Status A Google Summer of Code 2015 project A Google Summer of Code 2021 project

matrixStats: Functions that Apply to Rows and Columns of Matrices (and to Vectors)

Introduction

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.

Example

With a matrix

> x <- matrix(rnorm(20 * 500), nrow = 20, ncol = 500)

it is many times faster to calculate medians column by column using

> mu <- matrixStats::colMedians(x)

than using

> mu <- apply(x, MARGIN = 2, FUN = median)

Moreover, if performing calculations on a subset of rows and/or columns, using

> mu <- colMedians(x, rows = 33:158, cols = 1001:3000)

is much faster and more memory efficient than

> mu <- apply(x[33:158, 1001:3000], MARGIN = 2, FUN = median)

Benchmarks

For formal benchmarking of matrixStats functions relative to alternatives, see the Benchmark reports.

Design goals

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.

Installation

R package matrixStats is available on CRAN and can be installed in R as:

install.packages("matrixStats")

Pre-release version

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.

Contributing

To contribute to this package, please see CONTRIBUTING.md.

More Repositories

1

future

🚀 R package: future: Unified Parallel and Distributed Processing in R for Everyone
R
916
star
2

progressr

三 R package: An Inclusive, Unifying API for Progress Updates
R
254
star
3

future.apply

🚀 R package: future.apply - Apply Function to Elements in Parallel using Futures
R
200
star
4

startup

🔧 R package: startup - Friendly R Startup Configuration
R
150
star
5

Wishlist-for-R

Features and tweaks to R that I and others would love to see - feel free to add yours!
R
127
star
6

speedtest-cli-extras

📶 Tools to enhance the speedtest-cli network tools
Shell
120
star
7

parallelly

R package: parallelly - Enhancing the 'parallel' Package
R
111
star
8

R.matlab

R package: R.matlab
R
84
star
9

future.batchtools

🚀 R package future.batchtools: A Future API for Parallel and Distributed Processing using batchtools
R
83
star
10

doFuture

🚀 R package: doFuture - Use Foreach to Parallelize via Future Framework
R
79
star
11

R.utils

🔧 R package: R.utils (this is *not* the utils package that comes with R itself)
R
59
star
12

dirdf

R package: dirdf - Extracts Metadata from Directory and File Names
R
58
star
13

future.callr

🚀 R package future.callr: A Future API for Parallel Processing using 'callr'
R
56
star
14

R.cache

♻️ R package: R.cache - Fast and Light-weight Caching (Memoization) of Objects and Results to Speed Up Computations
R
35
star
15

profmem

🔧 R package: profmem - Simple Memory Profiling for R
R
33
star
16

ucsf-vpn

Linux command-line client to manage a UCSF VPN connection
Shell
29
star
17

globals

🌐 R package: Identify Global Objects in R Expressions
R
28
star
18

listenv

R package: listenv - Environments Behaving As Lists
R
28
star
19

dotfiles-for-R

My dotfiles for R, e.g. .Rprofile and .Renviron
R
28
star
20

R.rsp

📄 R package: Dynamic generation of scientific reports
R
27
star
21

R.oo

R package: R.oo - R Object-Oriented Programming with or without References
R
20
star
22

brother-ptouch-label-printer-on-linux

How to print to a Brother P-touch (PT) label printer on Linux
Lua
18
star
23

R.devices

🎨 R package: Unified Handling of Graphics Devices
R
17
star
24

shellcheck-repl

Validation of Shell Commands Before Evaluation
Shell
14
star
25

future.mapreduce

[EXPERIMENTAL] R package: future.mapreduce - Utility Functions for Future Map-Reduce API Packages
R
13
star
26

port4me

🆓 port4me - Get the Same, Personal, Free TCP Port over and over
Shell
13
star
27

marshal

R package: marshal - Framework to Marshal Objects to be Used in Another R Processes
R
13
star
28

TopDom

R package: TopDom - An efficient and Deterministic Method for identifying Topological Domains in Genomes
R
13
star
29

git-bioc

:octocat: LEGACY: Git commands to keep a Git repository and Bioconductor SVN in sync
Shell
10
star
30

article-bengtsson-future

H. Bengtsson, A Unifying Framework for Parallel and Distributed Processing in R using Futures, The R Journal, 10.32614/RJ-2021-048, 2021
TeX
10
star
31

future.tests

🔩 R package: future.tests - Test Suite for Future API Backends
R
10
star
32

future.clustermq

🚀 R package future.clustermq: A Future API for Parallel Processing using 'clustermq'
R
9
star
33

aroma.affymetrix

🔬 R package: Analysis of Large Affymetrix Microarray Data Sets
R
9
star
34

fake-hdf5r

R package: hdf5r - Fake, Dummy, Non-Working 'hdf5r' Package for 'Seurat' Users
R
8
star
35

future-tutorial-user2022

Tutorial: An Introduction to Futureverse for Parallel Processing in R (useR! 2022)
R
8
star
36

RNativeAPI

R package: RNativeAPI - Documentation and Examples of the R Native API (Proof of Concept)
R
8
star
37

future.BatchJobs

🚀 R package: future.BatchJobs: A Future API for Parallel and Distributed Processing using BatchJobs [Intentionally archived on CRAN on 2021-01-08]
R
8
star
38

PSCBS

🔬 R package: Analysis of Parent-Specific DNA Copy Numbers
R
7
star
39

BiocParallel.FutureParam

🚀 R package: BiocParallel.FutureParam - Use Futures with BiocParallel
Makefile
7
star
40

affxparser

🔬 R package: This is the Bioconductor devel version of the affxparser package.
C++
7
star
41

illuminaio

🔬 R package: This is the Bioconductor devel version of the illuminaio package.
R
6
star
42

x86-64-level

x86-64-level - Get the x86-64 Microarchitecture Level on the Current Machine
Shell
6
star
43

future.aws.lambda

R package: future.aws.lambda - A Future API for Parallel Processing on AWS Lambda
5
star
44

conda-stage

conda-stage: Stage a Conda Environment on Local Disk
Shell
5
star
45

ThinkpadX1-Windows10-Middle_mouse_button_issue

AutoHotkey
5
star
46

teeny

🐣 R package: teeny - A Minimal, Valid, Complete R Package
R
4
star
47

rcli

R package: rcli - R Command-Line Interface Extras
R
4
star
48

easycatfs

easycatfs - Easy Mounting of Slow Folders onto Local Disk
Shell
4
star
49

pkgdown.extras

R package: pkgdown.extras: Enhancing the 'pkgdown' Package
R
3
star
50

TopDomData

R package: TopDomData - Data for the TopDom Package
R
3
star
51

environments

[experimental] R package: environments - Working with Environments and Closures in R
R
3
star
52

CostelloPSCNSeq

R package: Parent-specific Copy-number Estimation Pipeline using HT-Seq Data
R
3
star
53

fix.connections

R package: fix.connections - Workarounds for Deficiencies in R's Built-in Connections [PROTOTYPE]
R
3
star
54

jottr.org-blogdown

JottR - Some Jotter on R
HTML
2
star
55

git-r

A Git Extension Making it Easier to Build R from Source
Shell
2
star
56

revdepcheck.extras

R package: revdepcheck.extras - Reverse-Dependency Checks from the Command Line (CLI)
R
2
star
57

r-base-centos7

Docker container image: Centos 7 with R (UNDER CONSTRUCTION)
2
star
58

R.filesets

R package: R.filesets - Easy Handling of and Access to Files Organized in Structured Directories
R
2
star
59

trackers

PROTOTYPE: trackers - Track Changes in R
R
2
star
60

CBI-software

A Scientific Software Stack for HPC (CentOS oriented)
Makefile
2
star
61

R_CRAN_Booster

Chrome Extension: R CRAN Booster - adds useful annotations to CRAN package pages
JavaScript
2
star
62

drat

R package repository
1
star
63

RGitHubAPI

R
1
star
64

dotfiles-for-emacs

Dot files for Emacs
Emacs Lisp
1
star
65

bash-startup

Bash Startup utility functions
Shell
1
star
66

markin

markin - The Markdown Injector
Shell
1
star
67

AutoHotkey-scripts

AutoHotkey
1
star
68

docker-spark-r

1
star
69

aroma.cn

🔬 R package: aroma.cn
R
1
star
70

aroma.agilent

🔬 R package: aroma.agilent [DORMANT]
R
1
star
71

R.batch

R package: R.batch [DEPRECATED]
R
1
star
72

R.lang

R.package: R.lang [DEPRECATED]
R
1
star
73

r-mirrors

Mirror CRAN and Bioconductor repositories on the local file system for R package installaions without internet access
Makefile
1
star
74

covr-utils

[LEGACY] Enhancements for covr making it even easier to do assess source-code coverage of R package tests
R
1
star
75

amazonlinux-r-minimal

Docker Hub Image: docker pull henrikbengtsson/amazonlinux-r-minimal
1
star
76

future.api.tests

[PLANNED] R package future.api.tests: Conformance Tests for the Future API
1
star
77

calmate

🔬 R package: calmate - Improved Allele-Specific Copy Number of SNP Microarrays for Downstream Segmentation
R
1
star
78

LinuxEnvironmentModules

R package: LinuxEnvironmentModules - An R API to Linux Environment Modules
R
1
star
79

Affx-Fusion-SDK

🔬 Affymetrix Fusion Software Developers Kit (SDK)
C++
1
star
80

aroma.core

🔬 R package: aroma.core - Core Methods and Classes Used by 'aroma.*' Packages Part of the Aroma Framework
R
1
star