Consider this R code
> l = list(key = 1)
> l$k
[1] 1
> l$ke
[1] 1
> l[['k']]
NULL
> names(l)
[1] "key"
Does this mean that you can access a list member with $
and its partial name? I couldn't believe my eyes when I discovered this after a frustrating bug-hunting.
Is this a feature of R list? Is there a name for it? Is it possible to turn it off? This causes obvious troubles when you use it like a Python dict.
It's a feature that is meant to help in interactive mode. You can tighten it locally, see help(options)
which has
‘warnPartialMatchArgs’: logical. If true, warns if partial
matching is used in argument matching.
‘warnPartialMatchAttr’: logical. If true, warns if partial
matching is used in extracting attributes via ‘attr’.
‘warnPartialMatchDollar’: logical. If true, warns if partial
matching is used for extraction by ‘$’.
Example:
R> l <- list(key = 1)
R> l$k
[1] 1
R> options("warnPartialMatchDollar"=TRUE)
R> l$k
[1] 1
Warning message:
In l$k : partial match of 'k' to 'key'
R>
and you can further promote warnings to errors if you so choose (and that option is described on the same page).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With