[R] How to convert character matrix or data.frame to numeric?

Ben Tupper ben.bighair at gmail.com
Sun Jan 17 23:33:48 CET 2010


Hi,

I find the following works in R 2.10.1 on Mac OSX.

 > m = matrix(rep("3", 30), 5,6)
 > m
      [,1] [,2] [,3] [,4] [,5] [,6]
[1,] "3"  "3"  "3"  "3"  "3"  "3"
[2,] "3"  "3"  "3"  "3"  "3"  "3"
[3,] "3"  "3"  "3"  "3"  "3"  "3"
[4,] "3"  "3"  "3"  "3"  "3"  "3"
[5,] "3"  "3"  "3"  "3"  "3"  "3"
 > apply(m, 1,as.numeric)
      [,1] [,2] [,3] [,4] [,5]
[1,]    3    3    3    3    3
[2,]    3    3    3    3    3
[3,]    3    3    3    3    3
[4,]    3    3    3    3    3
[5,]    3    3    3    3    3
[6,]    3    3    3    3    3

Cheers,
Ben
On Jan 17, 2010, at 5:17 PM, ivan popivanov wrote:

>
> Hello,
>
>
>
> This turned out to be surprisingly hard for me:
>
>
>
> Let's say I have
>
>
>
> mm = matrix(as.character(seq(1,30, 1)), nrow=3); mm
>
>     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
> [1,] "1"  "4"  "7"  "10" "13" "16" "19" "22" "25" "28"
> [2,] "2"  "5"  "8"  "11" "14" "17" "20" "23" "26" "29"
> [3,] "3"  "6"  "9"  "12" "15" "18" "21" "24" "27" "30"
>
>
>
> which is a matrix of strings, I'd like to convert this to a matrix  
> of the corresponding numbers:
>
>
>
> nn = matrix(seq(1,30, 1), nrow=3), nn
>
>     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
> [1,]    1    4    7   10   13   16   19   22   25    28
> [2,]    2    5    8   11   14   17   20   23   26    29
> [3,]    3    6    9   12   15   18   21   24   27    30
>
>
>
> I can convert each dimension using sapply(mm[,1], as.numeric), but  
> how to convert the full matrix?!
>
>
>
> In fact I hit this problem because I got a data.frame consisting of  
> factors (numerics represented as strings) when I queried a database.  
> So if you can advise how to convert this data.frame to a data.frame  
> with proper numerics - that would be even better. The problem is  
> that my numerics are doubles and the data.matrix function seems to  
> cast factors to ints.
>
>
>
> Thanks in advance,
>
> Ivan
>
>
> 		 	   		
> _________________________________________________________________
>
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.


Cheers,
Ben



More information about the R-help mailing list