Kun Ren
2018-May-19 08:17 UTC
[Rd] Bug on qr.coef when qr is created by a zero matrix with colnames and all y equals zero
Dear maintainers, I'm reporting a bug in qr.coef that mishandles the colnames of matrix. A minimal reproducible example is as follows: x <- cbind(rep(0, 10), rep(0, 10)) y <- rep(0, 10) q <- qr.default(x) qr.coef(q, y) [1] NA NA If x has colnames, then qr.coef will end up with an error: x <- cbind(x1 = rep(0, 10), x2 = rep(0, 10)) y <- rep(0, 10) q <- qr.default(x) qr.coef(q, y) Error in qr.coef(q, y) : object 'pivotted' not found This happens only when x any y are all zeros. I found this problem when I implement a qr-based wls which stops when all weights are zero and the x matrix has colnames. A brief debug on qr.coef shows that when `nam` is not NULL, no branch of code leads to creating `pivotted` before using it finally.? Best, Kun
Martin Maechler
2018-May-24 15:44 UTC
[Rd] Bug on qr.coef when qr is created by a zero matrix with colnames and all y equals zero
>>>>> Kun Ren >>>>> on Sat, 19 May 2018 08:17:37 +0000 writes:> Dear maintainers, > I'm reporting a bug in qr.coef that mishandles the colnames of matrix. A minimal reproducible example is as follows: > x <- cbind(rep(0, 10), rep(0, 10)) > y <- rep(0, 10) > q <- qr.default(x) > qr.coef(q, y) > [1] NA NA > If x has colnames, then qr.coef will end up with an error: > x <- cbind(x1 = rep(0, 10), x2 = rep(0, 10)) > y <- rep(0, 10) > q <- qr.default(x) > qr.coef(q, y) > Error in qr.coef(q, y) : object 'pivotted' not found > This happens only when x any y are all zeros. I found this problem when I implement a qr-based wls which stops when all weights are zero and the x matrix has colnames. > A brief debug on qr.coef shows that when `nam` is not NULL, no branch of code leads to creating `pivotted` before using it finally.? Dear Kun, this is indeed a bug, and I will address it. Thank you very much for the reprex (:= [repr]oducible [ex]ample)! Best, Martin Maechler