There are different algorithms to calculate the Principal Components (PCs). Kurt Varmuza & Peter Filzmozer explain them in their book: “Introduction to Multivariate Statistical Analysis in Chemometrics”.
I´m going to apply one of them, to the Yarn spectra.
Previously we have to center the X matrix, let´s call it Xc.
> Xc<-scale(yarn$NIR, center = TRUE, scale = FALSE)
The algorithm I´m going to apply is “Singular Value Decomposition”.
The idea of this post is just to look to the loadings matrix (P). Loadings are spectra. which reconstruct together with the score matrix (T), and an error matrix (E), the original X matrix.
For this case 3 components in enough, because explain almost 99% of the variance, so let´s have a look to the first three loadings: