RE: [R] body of non-visible function

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Fri 06 May 2005 - 01:54:17 EST

On Thu, 5 May 2005, Liaw, Andy wrote:

>> From: Anna Oganyan
>>
>> Hello,
>> Is there any possibility in R to see the body of the "non-visible"
>> function, for
>> example "princomp"?
>> If I do :
>>
>> > methods(princomp)
>>
>> so, I get that princomp.default and princomp.formula are non-visible
>> functions and
>> body(princomp.default) doesn't show it.
>
> You may want to learn about getAnywhere() and getS3method().
>
>
>> In particular, I guess I have a very na´ve question...
>> I'd like to see how scores calculation is implemented in the function
>> princomp. Because when I multiply my data matrix on the
>> matrix of loadings
>> >data.matrix %*% princomp(data.matrix, scores=T)$loadings
>>
>> I get different result than just doing
>>
>> >princomp(data.matrix, scores=T)$scores.
>
> Variables are centered and scaled, so you want to do
>
> scale(data.matrix) %*% loadings(princomp(data.matrix))

Only centred. Had this been princomp(data.matrix, cor=TRUE, scores=TRUE) they would have been scaled. It is better to follow my hint of looking at predict.princomp:

     object <- princomp(data.matrix)
     scale(data.matrix, object$center, object$scale) %*% object$loadings

BTW, data.matrix is an R function, so not a good choice of name.

-- 
Brian D. Ripley,                  ripley@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

______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Received on Fri May 06 02:22:45 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:31:36 EST