[Rd] RFC: adding an 'exact' argument to [[
Prof Brian Ripley
ripley at stats.ox.ac.uk
Thu May 17 21:54:27 CEST 2007
On Thu, 17 May 2007, Seth Falcon wrote:
> Bill Dunlap <bill at 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
More information about the R-devel
mailing list