On Wed, May 26, 2010 at 3:27 PM, Duncan Murdoch <murdoch.dun...@gmail.com> wrote: > Is this expected behaviour? > > x <- factor(c("c", "b", "a","c")) > results <- c(c=4, b=5) > results[x] > > giving > >> results[x] > <NA> b c <NA> > NA 5 4 NA > > (i.e. it appears to give results[levels(x)]
I would say it gives results[as.numeric(x)] and it's not clear if that is less "expected". E.g., what happens if results has no names? results[as.numeric(x)] would still work, but not results[as.character(x)]. Factors have a dual nature (character labels vs numeric codes), and when forced to choose, I think it's reasonable to choose the solution which works more generally. -Deepayan > > > whereas results[as.character(x)] does what I expected: > > as.character(x) > results[as.character(x)] > >> as.character(x) > [1] "c" "b" "a" "c" >> results[as.character(x)] > c b <NA> c > 4 5 NA 4 > > Duncan Murdoch > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel