[Rd] Strange behaviour of the [[ operator (PR#9263)

murdoch at stats.uwo.ca murdoch at stats.uwo.ca
Sat Sep 30 15:09:12 CEST 2006


On 9/29/2006 9:06 PM, Herve Pages wrote:
> Hi,
> 
> This looks like a bug:
> 
>     > a <- list(b=5)
>     > a[['b']]
>     [1] 5
>     > a[[t<-'b']]
> 
> Nothing gets printed!
> 
> I need to use parenthesis to see the expected result:
> 
>     > a[[(t<-'b')]]
>     [1] 5

Yes, I agree it looks like a bug, and it's still there in R-devel.  The 
problem is that the assignment sets the R_Visible flag to false, and the 
indexing never sets it to true.  The same problem happens with a[t <- 
'b'], whether a is a list or not:

 > a <- c(b=5, c=6, d=7)
 > a[t <- 'b']
 > .Last.value
b
5

Duncan Murdoch




More information about the R-devel mailing list