On 09/02/2010 4:50 AM, g.russ...@eos-solutions.com wrote:
Full_Name: George Russell
Version: 2.10.0 and 2.11.0 Under development (unstable) (2010-02-08 r51108)
OS: Windows
Submission from: (NULL) (217.111.3.131)
> c("a","b")[[c(TRUE,FALSE)]]
Error in `[[.default`(factor(c("a", "b")), c(TRUE, FALSE)) :
recursive indexing failed at level 1
I don't see that. I get this:
> c("a","b")[[c(TRUE,FALSE)]]
Error in c("a", "b")[[c(TRUE, FALSE)]] :
recursive indexing failed at level 1
which differs because c("a", "b") is not a factor.
I find this error message confusing, though after reading the HELP carefully I
think I know what is going on. Would not something like "[[ does not work with
logical index vectors" be more appropriate?
No, because it sometimes does work with logical index vectors:
> x <- 1:2
> x[[TRUE]]
[1] 1
(Here the TRUE is treated as 1. I think it only works when the logical
vector contains TRUE values, FALSE will fail, just as x[[0]] fails.)
The problem is that you were asking for the FALSE entry of the TRUE
entry of the object, and since you had a simple vector, recursive
indexing fails, and that's what the message says. I imagine you had
meant to type c("a", "b")[c(TRUE, FALSE)], but how can R know you meant
that?
Duncan Murdoch
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel