On Fri, May 08, 2009 at 05:14:48PM +0200, Petr Savicky wrote: > Let me suggest to consider the following modification, where match() is done > on the strings, not on the original values. > levels <- unique(as.character(sort(unique(x)))) > x <- as.character(x) > f <- match(x, levels)
An alternative solution is ind <- order(x) x <- as.character(x) # or any other conversion to character levels <- unique(x[ind]) # get unique levels ordered by the original values f <- match(x, levels) The advantage of this over the suggestion from my previous email is that the string conversion is applied only once. The conversion need not be only as.character(). There may be other choices specified by a parametr. I have strong objections against the existing implementation of as.character(), but still i think that as.character() should be the default for factor() for the sake of consistency of the R language. Petr. ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel