[Rd] non user-friendly error for chol2inv functions
(Ted Harding)
Ted.Harding at manchester.ac.uk
Fri Aug 29 15:21:05 CEST 2008
On 29-Aug-08 13:00:01, Martin Maechler wrote:
>>>>>> "cd" == christophe dutang <dutangc at gmail.com>
>>>>>> on Fri, 29 Aug 2008 14:28:42 +0200 writes:
>
> cd> Yes, I do not cast the first argument as a matrix with
> cd> as.matrix function.
> cd> Maybe we could detail the error message if the first
> cd> argument
> cd> is a numeric?
>
> cd> error(_("'a' is a numeric and must be coerced to a numeric
> cd> matrix"));
>
> Merci, Christophe. Yes, we *could* do that.
> Alternatively, I think I will just make it work in that case,
> since I see that
> qr(), chol(), svd(), solve() all
> treat a numeric (of length 1) as a 1 x 1 matrix automatically.
I was about to draw attention to this "inconsistency"!
While one is about it, might it not be useful also to do
the converse: Treat a 1x1 matrix as a scalar in appropriate
contexts?
E.g.
a <- 4
A <- matrix(4,1,1)
B <- matrix(c(1,2,3,4),2,2)
a*B
# [,1] [,2]
# [1,] 4 12
# [2,] 8 16
a+B
# [,1] [,2]
# [1,] 5 7
# [2,] 6 8
A*B
# Error in A * B : non-conformable arrays
A+B
# Error in A + B : non-conformable arrays
Ted.
>
> cd> Thanks for your answer
> De rien!
> Martin
>
> cd> 2008/8/29 Martin Maechler <maechler at stat.math.ethz.ch>
>
> >> >>>>> "cd" == christophe dutang <dutangc at gmail.com>
> >> >>>>> on Fri, 29 Aug 2008 12:44:18 +0200 writes:
> >>
> cd> Hi,
> cd> In function chol2inv with the option LINPACK set to false
> (default),
> >> it
> cd> raises an error when the matrix is 1x1 matrix (i.e. just a
> real)
> >> saying
> >>
> cd> 'a' must be a numeric matrix
> >>
> >> It is very helpful, but you have to read and understand it.
> >> I'm pretty sure you did not provide a 1 x 1 matrix.
> >>
> >> Here's an example showing how things works :
> >>
> >> > m <- matrix(4,1,1)
> >> > cm <- chol(m)
> >> > cm
> >> [,1]
> >> [1,] 2
> >> > chol2inv(cm)
> >> [,1]
> >> [1,] 0.25
> >> >
> >>
> >> Martin Maechler, ETH Zurich
> >>
> >>
> cd> This error is raised by the underlying C function
> (modLa_chol2inv in
> cd> function Lapack.c). Everything is normal, but I wonder if we
> could
> >> have
> cd> another behavior when we pass a 1x1 matrix. I spent time this
> >> morning
> cd> finding where was the error, and it was this "problem".
> >>
> cd> Thanks in advance
> >>
> cd> Christophe
> >>
> cd> [[alternative HTML version deleted]]
> >>
> cd> ______________________________________________
> cd> R-devel at r-project.org mailing list
> cd> https://stat.ethz.ch/mailman/listinfo/r-devel
> >>
>
> cd> [[alternative HTML version deleted]]
>
> cd> ______________________________________________
> cd> R-devel at r-project.org mailing list
> cd> https://stat.ethz.ch/mailman/listinfo/r-devel
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
--------------------------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at manchester.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 29-Aug-08 Time: 14:16:03
------------------------------ XFMail ------------------------------
More information about the R-devel
mailing list