With this example set.seed(123) A <- matrix(runif(40), nrow = 8) y <- 1:nrow(A)
A.laqr <- qr(A, LAPACK=TRUE) both qr.qy(A.laqr,y) and qr.qty(A.laqr,y) give the respective error messages Error in qr.qy(A.laqr, y) : 'b' must be a numeric matrix Error in qr.qty(A.laqr, y) : 'b' must be a numeric matrix However when Lapack is not used as in A.liqr <- qr(A, LAPACK=FALSE) qr.qy(A.liqr,y) and qr.qty(A.liqr,y) don't issue error messages. Looking at the source of qr.qy and qr.qty in https://svn.r-project.org/R/trunk/src/library/base/R/qr.R I see that in the case of Lapack the storage.mode of y is not set to "double" (in contrast to when Linpack QR has been used). I assume that the error issued when LAPACK=TRUE is not intended. Berend Suggested code change in qr.qy Replace if(!is.null(a) && is.logical(a) && a) return(.Call("qr_qy_real", qr, as.matrix(y), 0, PACKAGE = "base")) with if(!is.null(a) && is.logical(a) && a) { storage.mode(y) <- "double" return(.Call("qr_qy_real", qr, as.matrix(y), 0, PACKAGE = "base")) } and a similar change in qr.qty ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel