[R] 'autocompletion' of named elements of a list

Ivan Calandra ivan.calandra at uni-hamburg.de
Fri Mar 11 10:07:10 CET 2011


Hi,

 From ?"$", you can see that using [[ instead would do what you're 
looking for. You should read and try to understand the whole help file.
The reason is that for [[ the default is exact=TRUE, wheareas for $ the 
only possible value is exact=FALSE, which means partial matching if 
possible.

So try A[["aa"]] instead.

HTH,
Ivan

Le 3/11/2011 09:55, Håvard Rue a écrit :
> I had an obscure bug that boiled down to this ``feature'' in R,
>
> Read 3921 items
>> A = list(aa = 1)
>> A
> $aa
> [1] 1
>
>> if (A$a) print("a is there")
> [1] "a is there"
>
> The test appear to check is A$a is TRUE, but what happen is that it
> auto-complete (silently), and expand to 'A$aa'.
>
> The problem was caused by the fact that I had also a element named 'a'
> which was evaluated to NULL,  like
>
>> A$a = NULL
>> A
> $aa
> [1] 1
>
>> if (A$a) print("a is there")
> [1] "a is there"
>
> since NULL elements are removed from the list, and that A$a auto-expand
> to A$aa, my error appeared.
>
> To me, this seems not a feature I want in order to have a robust
> program.
>
> Is there any option to turn this ''feature'' off?
>
> Best,
> H
>
>
>

-- 
Ivan CALANDRA
PhD Student
University of Hamburg
Biozentrum Grindel und Zoologisches Museum
Abt. Säugetiere
Martin-Luther-King-Platz 3
D-20146 Hamburg, GERMANY
+49(0)40 42838 6231
ivan.calandra at uni-hamburg.de

**********
http://www.for771.uni-bonn.de
http://webapp5.rrz.uni-hamburg.de/mammals/eng/1525_8_1.php



More information about the R-help mailing list