[Rd] R 2.5.1 - ?factor examples, details

Peter Dalgaard p.dalgaard at biostat.ku.dk
Tue Jul 3 09:08:46 CEST 2007

François Pinard wrote:
> Hi, R people.
> In ?factor, in the "Examples:" section, we see:
>   ## suppose you want "NA" as a level, and to allowing missing values.
>   (x <- factor(c(1, 2, "NA"), exclude = ""))
>   is.na(x)[2] <- TRUE
>   x  # [1] 1    <NA> NA, <NA> used because NA is a level.
>   is.na(x)
> I'm a bit confused by this example, as I do not understand the point 
> being made.  Using 'exclude = ""' or not does not change the outcome.
> What is being demonstrated by this clause, here?  Isn't "NA" a mere 
> string, not really related to a missing value?
> It might also be some kind of linguistic problem, and I'm not a native 
> English speaker.  The "and to allowing" construct sounds strange to me.  
> I would expect either "and to allow" or "and allowing", but maybe I'm 
> plainly missing the meaning of the statement.
> Could this be clarified somehow?
I think this is a relic. In the olden days, there was no such thing as a 
missing character values, and factor() would behave like

 >  (x <- factor(c(1, 2, "NA"), exclude = "NA"))
[1] 1    2    <NA>
Levels: 1 2

...which was a pain when dealing with abbreviations for "noradrenalin", 
"North America", "New Alliance", "Neil Armstrong", etc. So character NA 
was added to R, and the example became irrelevant without anyone noticing.

More information about the R-devel mailing list