The nipals package tries to do just one thing really well...find principal
components of a matrix using Nonlinear Partial Least Squares. Missing
values are allowed, the principal components are orthogonal, and the code
has been heavily optimized.
Details of the package can be found in a pair of vignettes: