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.calan...@uni-hamburg.de

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

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to