Full_Name: Gad Abraham Version: 2.7.0 OS: Ubuntu Linux Submission from: (NULL) (59.167.148.182)
Description: ============ > x1 <- matrix(rnorm(100), 5, 20) > x2 <- matrix(rnorm(100), 5, 20) > p <- prcomp(x1) > predict(p, x2) Error in predict.prcomp(p, x2) : 'newdata' does not have the correct number of columns > dim(x2) [1] 5 20 > dim(p$rotation) [1] 20 5 All predict.prcomp really does is x2 %*% p$rotation, which is a perfectly legal operation that should yield a 5x5 matrix: > dim(x2 %*% p$rotation) [1] 5 5 Solution: ========= Change p <- NCOL(object$rotation) to p <- NROW(object$rotation) This bug is still present in R-patched_2008-05-16. > sessionInfo() R version 2.7.0 (2008-04-22) x86_64-unknown-linux-gnu locale: LC_CTYPE=en_AU.UTF-8;LC_NUMERIC=C;LC_TIME=en_AU.UTF-8;LC_COLLATE=en_AU.UTF-8;LC_MONETARY=C;LC_MESSAGES=en_AU.UTF-8;LC_PAPER=en_AU.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_AU.UTF-8;LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel