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]]
Reasonably Related 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