irlba

star 5

R irlba package for fast SVD/PCA. Use for truncated SVD and PCA on large matrices.

LeoLin990405 By LeoLin990405 schedule Updated 1/30/2026

name: irlba description: R irlba package for fast SVD/PCA. Use for truncated SVD and PCA on large matrices.

irlba

Fast truncated SVD and PCA.

Truncated SVD

library(irlba)

# Compute top 5 singular vectors
svd_result <- irlba(A, nv = 5)

# Results
svd_result$u  # Left singular vectors
svd_result$v  # Right singular vectors
svd_result$d  # Singular values

Fast PCA

# PCA via SVD
pca <- prcomp_irlba(data, n = 5)

# Results
pca$x         # Scores (rotated data)
pca$rotation  # Loadings
pca$sdev      # Standard deviations
pca$center    # Means
pca$scale     # Scales

# Predict
predict(pca, newdata = new_data)

Options

# With centering and scaling
pca <- prcomp_irlba(data, n = 5,
  center = TRUE,
  scale. = TRUE)

# More iterations for accuracy
svd_result <- irlba(A, nv = 5, maxit = 1000)

Sparse Matrices

library(Matrix)

# Create sparse matrix
sparse_A <- Matrix(A, sparse = TRUE)

# SVD on sparse matrix
svd_result <- irlba(sparse_A, nv = 5)

Partial SVD

# Only left vectors
svd_result <- irlba(A, nv = 5, nu = 0)

# Only right vectors
svd_result <- irlba(A, nv = 5, nv = 0)

Augmented Implicitly Restarted

# For better convergence
svd_result <- irlba(A, nv = 5,
  work = 20,      # Working subspace size
  reorth = TRUE)  # Reorthogonalization

Comparison with Base R

# Base R (computes all)
svd_full <- svd(A)

# irlba (computes only top k)
svd_partial <- irlba(A, nv = 5)

# Much faster for large matrices

Low-Rank Approximation

# Reconstruct matrix
svd_result <- irlba(A, nv = 5)
A_approx <- svd_result$u %*% diag(svd_result$d) %*% t(svd_result$v)
Install via CLI
npx skills add https://github.com/LeoLin990405/r-analytics-skill --skill irlba
Repository Details
star Stars 5
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator
LeoLin990405
LeoLin990405 Explore all skills →