[R] as.character.factor when the factor contains "NA"
    Petr Pikal 
    petr.pikal at precheza.cz
       
    Tue May  2 10:30:43 CEST 2006
    
    
  
Hi
I did not see any response so I try to express my opinion that the 
behaviour is quite ok.
In your first example there is no "NA" level so clearly the only NA 
stands for "not available". However in your second example there is 
"NA" as a level which stands for e.g. North America or New Account. 
Therefore
fac<-as.factor("NA", "CD", NA)
retains NotAvailable on third place and 
as.character(fac)
gives you 2 different NA values, one with meaning and one which 
represents NotAvailable.
if you want NA to stays NA in your arguments you can try
> is.na(as.character(factor(c("NA", "CD", NA), exclude=NULL)))
[1] FALSE FALSE  TRUE
> is.na(as.character(factor(c("AB", "CD", NA), exclude=NULL)))
[1] FALSE FALSE  TRUE
>
HTH
Petr
On 28 Apr 2006 at 18:15, Brahm, David wrote:
Date sent:      	Fri, 28 Apr 2006 18:15:36 -0400
From:           	"Brahm, David" <David.Brahm at geodecapital.com>
To:             	"R-help" <r-help at stat.math.ethz.ch>
Subject:        	[R] as.character.factor when the factor contains "NA"
> as.character.factor contains this line (where cx=levels(x)[x]):
>   if ("NA" %in% levels(x)) cx[is.na(x)] <- "<NA>"
> 
> Is it possible that this is no longer the desired behavior?  These two
> results don't seem very consistent:
> 
> > as.character(as.factor(c("AB", "CD", NA)))
> [1] "AB" "CD" NA  
> > is.na(.Last.value)[3]
> [1] TRUE
> 
> > as.character(as.factor(c("NA", "CD", NA)))
> [1] "NA"   "CD"   "<NA>"
> > is.na(.Last.value)[3]
> [1] FALSE
> 
> I'm using R-2.3.0 on Redhat Linux, but I don't think the behavior is
> new (maybe since character NA's were introduced?).
> 
> -- David Brahm (brahm at alum.mit.edu)
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
Petr Pikal
petr.pikal at precheza.cz
    
    
More information about the R-help
mailing list