From ligges at statistik.tu-dortmund.de  Tue Feb  9 18:00:31 2010
From: ligges at statistik.tu-dortmund.de (Uwe Ligges)
Date: Tue, 09 Feb 2010 18:00:31 +0100
Subject: [Rd] Confusing error message for [[.factor (PR#14209)
In-Reply-To: <20100209095009.A817C282EFC8@mail.pubhealth.ku.dk>
References: <20100209095009.A817C282EFC8@mail.pubhealth.ku.dk>
Message-ID: <4B7194AF.1030801@statistik.tu-dortmund.de>



On 09.02.2010 10:50, g.russell at 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 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?


Well, it is nonsense to use it, but works since TRUE is coerced to 1 as in:

list(list(11, 12), 13)[[c(TRUE, TRUE)]]


In your example will also fail with integers without a chance to do the 
recursion.

Uwe Ligges




> sessionInfo is (for 2.11) :
> R version 2.11.0 Under development (unstable) (2010-02-08 r51108)
> i386-pc-mingw32
>
> locale:
> [1] LC_COLLATE=German_Germany.1252  LC_CTYPE=German_Germany.1252
> LC_MONETARY=German_Germany.1252
> [4] LC_NUMERIC=C                    LC_TIME=German_Germany.1252
>
> attached base packages:
> [1] stats     graphics  grDevices datasets  utils     methods   base
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] Confusing error message for [[.factor (PR#14209)
Uwe Ligges