  Matrix decompositions are fundamental tools in the area of applied
mathematics, statistical computing, and machine learning. In particular,
low-rank matrix decompositions are vital, and widely used for data analysis,
dimensionality reduction, and data compression. Massive datasets, however, pose
a computational challenge for traditional algorithms, placing significant
constraints on both memory and processing power. Recently, the powerful concept
of randomness has been introduced as a strategy to ease the computational load.
The essential idea of probabilistic algorithms is to employ some amount of
randomness in order to derive a smaller matrix from a high-dimensional data
matrix. The smaller matrix is then used to compute the desired low-rank
approximation. Such algorithms are shown to be computationally efficient for
approximating matrices with low-rank structure. We present the \proglang{R}
package rsvd, and provide a tutorial introduction to randomized matrix
decompositions. Specifically, randomized routines for the singular value
decomposition, (robust) principal component analysis, interpolative
decomposition, and CUR decomposition are discussed. Several examples
demonstrate the routines, and show the computational advantage over other
methods implemented in R.
