[Rd] Indexing bug?
Deepayan Sarkar
deepayan.sarkar at gmail.com
Wed May 26 12:33:00 CEST 2010
On Wed, May 26, 2010 at 3:27 PM, Duncan Murdoch
<murdoch.duncan at 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 at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
More information about the R-devel
mailing list