Hello dear R-help mailing list,

My question is *not* about how factors are implemented in R (which is, if I
understand correctly, that factors keeps numbers and assign levels to them).
My question *is* about why so many functions that work on factors don't
treat them as characters by default?

Here are two simple examples:
Example one turning the characters inside a factor into numeric:

x <- factor(4:6)
as.numeric(x) # output: 1 2 3
as.numeric(as.character(x)) # output: 4 5 6  # isn't this what we wanted?


Example two, using strsplit on a factor:

x <- factor(paste(letters[4:6], 4:6, sep="A"))
strsplit(x, "A") # will result in an error:  # Error in strsplit(x, "A") :
non-character argument
strsplit(as.character(x), "A") # will work and split


So what is the reason this is the case?
Is it that implementing a switch of factors to characters as the default in
some of the basic function will cause old code to break?
Is it a better design in some other way?

I am curious to know the reason for this.

Thank you for your reading,
Tal

----------------Contact
Details:-------------------------------------------------------
Contact me: Tal.Galili@gmail.com |  972-52-7275845
Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) |
www.r-statistics.com (English)
----------------------------------------------------------------------------------------------

	[[alternative HTML version deleted]]

