Carlos Cano
2010-May-28 12:34 UTC
[R] Problems executing cor(dataset) function in R 2.11.0 for OSX ( It works fine in R 2.10.1)
Hi all,
I was experiencing a similar problem with some code which uses the package
maCorrPlot (BioConductor)
http://www.bioconductor.org/packages/2.6/bioc/html/maCorrPlot.html
to compute the correlation between different variables. This code was
working
apparently fine under R 2.9 (but it was raising warning messages!) and the
same was not working under R 2.11.
A simple example was:
1.> library(maCorrPlot)
2.> m <- as.matrix(read.table(fileIn, header=TRUE, sep='\t'))
3.> m <- m[,2:ncol(m)]
4.> corr.m <- CorrSample(m,np=1000)
The WARNING (in version 2.9) was: "NAs introduced by coercion"
The ERROR in version 2.11 was: "Error in cor(g1, g2, use =
"pairwise") : 'x'
must be numeric"
My problem was that the matrix (that I was reading and loading into m in
line 2) contained a first column with the row names (character strings).
Therefore, although it was not being taken into account for computing
correlation in line 4, (because this column was "removed" from m in
line 3),
it was forcing a casting to string when reading the whole m matrix. I.e,
reading this first column as part of the values of the matrix makes
as.matrix(read.table(..)) produce a matrix of char strings.
Simply changing line 2 with:
2'. > m <- as.matrix(read.table(fileIn, header=TRUE,
sep='\t',row.names=1))
and removing line 3 above, the code works (both in R 2.10 and R 2.11)
because there are only numeric values in the matrix and
as.matrix(read.table(..)) now converts the values to numeric by default.
I couldn't check John M. Quick's site, but I think the problem is that
somehow you are loading char string values in your matrix "datavar".
Carlos
On 10/05/2010 7:36 AM, Ruben Garcia Berasategui wrote:
Dear all,
when trying to replicate John M. Quick's example for correlations between
multiple variables posted on:
http://rtutorialseries.blogspot.com/2009/11/r-tutorial-series-zero-order.html
with R 2.11.0 (GUI 1.33) using my MacBook Pro with OX X 10.5.8 I got the
following error message
datavar<-read.csv("dataset_readingTests.csv")
cor(datavar)
Error in cor(datavar) : 'x' must be numeric
The funny thing is that when I tried to do the same example using R 2.10.1, it
worked fine.
Any ideas regarding how to solve this problem?
I would think the first step would be to ask Mr. Quick what's wrong.
Duncan Murdoch
[[alternative HTML version deleted]]
Apparently Analagous Threads
- Problems executing cor(dataset) function in R 2.11.0 for OS X ( It works fine in R 2.10.1)
- [fields] image.plot abends with NAs in image.plot.info
- Please help me understand how arrays are translated in rails
- Statistical Analysis with R Beginner's Guide Book
- decorating API in R
