[R] How to change the class of data?

Charilaos Skiadas cskiadas at gmail.com
Thu Jun 12 09:42:23 CEST 2008


Seeing how there have been three wrong answers so far, I should point  
out that:

1) This is an FAQ:  http://cran.r-project.org/doc/FAQ/R-FAQ.html#How- 
do-I-convert-factors-to-numeric_003f
2) Most of the other methods suggested so far fail if the example x  
used is not of the form 1:n. The only reason they happen to work, is  
that in that case the levels coincide with their labels.

 > x<-factor(8:5)
 > as.numeric(levels(x))
[1] 5 6 7 8
 >
 > as.numeric(x)
[1] 4 3 2 1
 > class(x) <- "numeric"
 > x+1
[1] 5 4 3 2
attr(,"levels")
[1] "5" "6" "7" "8"



Haris Skiadas
Department of Mathematics and Computer Science
Hanover College


On Jun 12, 2008, at 3:07 AM, anna freni sterrantino wrote:

> Hi Selina,
> try ?as.numeric,
>
>  small example
>  a=c(1,2,3,4,5)
>  b=as.factor(a)
> class(b)
>
> c=as.numeric(b)
> class(c)
>
> in the case of a matrix of factor,try
> apply(matrix,1, as.numeric)
>
> Cheers
>
> A.
>
>
> ----- Messaggio originale -----
> Da: Qman Fin <finosaur at gmail.com>
> A: r-help at r-project.org
> Inviato: Giovedì 12 giugno 2008, 8:24:08
> Oggetto: [R] How to change the class of data?
>
> Hi all,
>
> I have some data x, which are actualy consisted of numerical  
> enties. But the
> class of this matrix is set to be "factor" by someone else. I used
> "class(x)", it turns out to be "factor". So I can not calculate them.
>
> How can I turn them into numerical data so that I can apply math  
> operations
> on them? Thanks a lot for your help.
>
> Selina
>



More information about the R-help mailing list