Bug on qr.coef when qr is created by a zero matrix with colnames and all y equals zero

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Bug on qr.coef when qr is created by a zero matrix with colnames and all y equals zero

Kun Ren
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



______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Bug on qr.coef when qr is created by a zero matrix with colnames and all y equals zero

Martin Maechler
>>>>> 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

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel