Skip to content

Modification to cov and cor

3 messages · Peter Dalgaard, Jonathan Rougier

#
Can I suggest that in cov and cor the lines

    if (is.data.frame(x)) 
        x <- as.matrix(x)
    if (is.data.frame(y)) 
        y <- as.matrix(y)

be replaced by 

    if (is.data.frame(x)) 
        x <- data.matrix(x) # coerce logical and factors
    if (is.data.frame(y)) 
        y <- data.matrix(y) # likewise

This would allow things like
which seems like a reasonable thing to do (certainly to my students!).  It
would also give a more informative error message:
Error in data.matrix(x) : non-numeric data type in frame

as opposed to
Error in cor(iris) : missing observations in cov/cor
In addition: Warning message: 
NAs introduced by coercion 

Cheers, Jonathan.

Jonathan Rougier                       Science Laboratories
Department of Mathematical Sciences    South Road
University of Durham                   Durham DH1 3LE
http://www.maths.dur.ac.uk/stats/people/jcr/jcr.html

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
#
Jonathan Rougier <J.C.Rougier@durham.ac.uk> writes:
I'd oppose that, especially for factors. Correlations between factors
are as likely to be nonsens as remotely meaningful.  

With the current definition of data.matrix (using codes(f)), even more so:
a b
1 1 2
2 2 1
3 3 3

!!
#
On 10 Nov 2000, Peter Dalgaard BSA wrote:

            
I agree with that.  I was thinking that a warning would be
helpful.  Perhaps something along the lines of

if (any(sapply(x, is.factor))) warning("Coercing factor to numeric")

J.

Jonathan Rougier                       Science Laboratories
Department of Mathematical Sciences    South Road
University of Durham                   Durham DH1 3LE
http://www.maths.dur.ac.uk/stats/people/jcr/jcr.html


-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._