From ehlers at ucalgary.ca  Tue Feb  9 18:17:45 2010
From: ehlers at ucalgary.ca (Peter Ehlers)
Date: Tue, 09 Feb 2010 10:17:45 -0700
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: <4B7198B9.5080209@ucalgary.ca>

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?

It didn't take particularly careful reading to find this:

  "The most important distinction between [, [[ and $ is that
   the [ can select more than one element whereas the other two
   select a single element."

Try this:

  c("a","b")[[c(1,2)]]
  c("a","b")[[TRUE]]

  -Peter Ehlers

> 
> 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
> 
> 

-- 
Peter Ehlers
University of Calgary



[Rd] Confusing error message for [[.factor (PR#14209)
Peter Ehlers