pca <- function(X) { if (missing(X)) { cat("Usage: r <- pca(X) X is nSamples x nComponents r$V is nComponents x nComponents eigenvector matrix (X %*% V) r$values are the nComponents eigenvalues \n") return(invisible(NULL)) } eigenResult <- eigen(cov(X)) list(V = eigenResult$vectors, values=eigenResult$values) }