body of non-visible function
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 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