Re: [Rd] RFC: adding an 'exact' argument to [[

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Thu, 17 May 2007 20:54:27 +0100 (BST)

On Thu, 17 May 2007, Seth Falcon wrote:

> Bill Dunlap <bill@insightful.com> writes:
>> This sounds interesting. Do you intend to leave the $
>> operator alone, so it will continue to do partial
>> matching? I suspect that that is where the majority
>> of partial matching for list names is done.
>
> The current proposal will not touch $. I agree that most intentional
> partial matching uses $ (hopefully only during interactive sessions).
> The main benefit of the our proposed change is more reliable package
> code. For long lists and certain patterns of use, there are also
> performance benefits:
>
> > kk <- paste("abc", 1:(1e6), sep="")
> > vv = as.list(1:(1e6))
> > names(vv) = kk
>
> > system.time(vv[["fooo", exact=FALSE]])
> user system elapsed
> 0.074 0.000 0.074
>
> > system.time(vv[["fooo", exact=TRUE]])
> user system elapsed
> 0.042 0.000 0.042
>
>
>> It might be nice to have an option that made x$partial warn so we
>> would fix code that relied on partial matching, but that is lower
>> priority.
>
> I think that could be useful as well. To digress a bit further in
> discussing $... I think the argument that partial matching is
> desirable because it saves typing during interactive sessions now has
> a lot less weight. The recent integration of the completion code
> gives less typing and complete names.

There is a similar issue with argument partial matching. Since we have the source of R one can pretty easily build a version of R which does not have the feature: I have been doing that in conjunction with 'codetools' to do some checking.

In both cases there is traditional partial matching: seq(along=) or seq(length=), and $fitted vs $fitted.values. There are not many uses of seq(along.with=) about and vastly more of seq(along=) (although in R using seq_along() is preferable): even in some packages which do use seq(along.with=) there are more instances of seq(along=).

-- 
Brian D. Ripley,                  ripley_at_stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Thu 17 May 2007 - 20:21:26 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 18 May 2007 - 03:33:38 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.