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" <[EMAIL PROTECTED]> To: "R-help" <r-help@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 ([EMAIL PROTECTED]) > > ______________________________________________ > R-help@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 [EMAIL PROTECTED] ______________________________________________ R-help@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