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

Gabor Grothendieck ggrothendieck at gmail.com
Sun Jan 17 23:21:29 CET 2010


Try this:

class(mm) <- "numeric"

On Sun, Jan 17, 2010 at 5:17 PM, ivan popivanov
<ivan.popivanov at hotmail.com> 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.
>



More information about the R-help mailing list