[R] factor always have type integer

Erich Neuwirth erich.neuwirth at univie.ac.at
Wed Sep 8 21:52:26 CEST 2004


typeof applied to a factor always seems to return "integer",
independently of the type of the levels.
This has a strange side effect.
When a variable is "imported" into a data frame,
its type changes.
character variables automatically are converted
to factors when imported into data frames.

Here is an example:

 > v1<-1:3
 > v2<-c("a","b","c")
 > df<-data.frame(v1,v2)
 > typeof(v2)
[1] "character"
 > typeof(df$v2)
[1] "integer"

It is somewhat surprising that
the types of v2 and df$v2 are different.

the answer is to do
levels(df$v2)[df$v2]
but that is somewhat involved.

Should the types not be identical, and typeof applied to factors
return the type of the levels?


-- 
Erich Neuwirth, Computer Supported Didactics Working Group
Visit our SunSITE at http://sunsite.univie.ac.at
Phone: +43-1-4277-38624 Fax: +43-1-4277-9386




More information about the R-help mailing list