[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