svd(x, ...) svd.default(x, nu = min(nrow(x), ncol(x)), nv = min(nrow(x), ncol(x)))
The singular value decomposition can be used as a numerically stable way to perform many operations that are used in multivariate statistics.
Deciding on the rank of a matrix is one task that has been suggested for the singular value. The "rank" of a matrix is numerically a rather ill-defined concept and really depends on the task at hand. Some hold that the QR decomposition is as good or better in some situations as the singular value decomposition at testing the rank.
Golub, G. H. and Van Loan, C. F. (1983). Matrix Computations. Johns Hopkins University Press, Baltimore.
Thisted, R. A. (1988). Elements of Statistical Computing: Numerical Computation. Chapman and Hall, New York.
amat <- matrix(1:9, 3, 3) # create a 3 by 3 matrix sva <- svd(amat) asqrt <- t(sva$v %*% (t(sva$u) * sqrt(sva$d))) # a squareroot of amat