[Rd] covmat argument in princomp() (PR#3682)

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Aug 8 09:47:46 MEST 2003

On Fri, 8 Aug 2003 jerome at hivnet.ubc.ca wrote:

> R version: 1.7.1
> OS: Red Hat Linux 7.2
> When "covmat" is supplied in princomp(), the output value "center" is all 
> NA's, even though the input matrix was indeed centered. I haven't read 
> anything about this in the help file for princomp(). 

You *did* try to read the help page?  You seem to have failed to read the 
description of `value', which says

  center: the means that were subtracted.

> See code below for an  example: pc2$center is all NA's.
> x <- rnorm(6)
> y <- rnorm(6)
> X <- cbind(x,y)
> pc1 <- princomp(X)
> pc1$scores %*% t(pc1$loadings)-X
> pc1$center
> pc2 <- princomp(X,covmat=cov(X)*5/6)

If you had read either the help page or the code, you would have seen
that x is not used when you supply covmat.  So although means were
subtracted, they were done by you not princomp(), and NA is the right

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-devel mailing list