19

This should be very basic and I hope someone can help me. I ran a principal component analysis with the following call:

pca <- princomp(....)
summary(pca)

Summary pca returns this description:

                          PC1    PC2     PC3
Standard deviation     2.8788 2.7862  2.1845
Proportion of Variance 0.1977 0.1549 0.07831

Look at the second line which shows the variance explained by each PC. How can I programmatically extract this vector in my script from the variable pca. I have done enough search and cannot find an answer.

Neeraj Bhatnagar
  • 341
  • 1
  • 2
  • 6
  • Its calculated in the `print` method, and is not returned. Look at `stats:::print.summary.princomp` ti see where it is generated. – user20650 Mar 14 '15 at 02:47

2 Answers2

24

Proportion of Variance is nothing else than normalized standard deviations. You can calculate them as PoV <- pca$sdev^2/sum(pca$sdev^2)

Marat Talipov
  • 13,064
  • 5
  • 34
  • 53
12

Just:

summary(pc)$importance[2,]
Neggor
  • 141
  • 2
  • 6