[Rd] (PR#9202) Re: Bugs with partial name matching

Tony Plate tplate at blackmesacapital.com
Fri Sep 8 22:21:20 CEST 2006


Anil Maliyekkel wrote:
> [snip]
> 
> Going back to the original partial replacement problem, is there  
> anyway to turn off partial matching, or to selectively apply exact  
> matching when trying to access a single element?  I can get the  
> desired single element match using the convoluted syntax D["ABC"] 
> [[1]] and perform partial replacement operations on a new column.   
> However, it would be nice to have single element access operator that  
> does exact matching.

The easiest thing to do is probably to always supply full names, and if 
you want to create a new component, then create it in its entirity (not 
by assigning to a subset of a non-existent component).

A couple of years ago I proposed (with code) an operator '$$' that did 
only exact matching, but that proposal didn't gather any interest at the 
time.  It might actually make more sense to have the roles switched, so 
that the ordinary '$' required exact matches, while the special '$$' 
allowed partial matching (to allow for convenient interactive use). 
But, that's probably a bigger change than the R code base & community 
could bear.

Then again, what about the following as a way forward to eliminating 
partial matching on names for "$" and "[[":

(1) Announce that partial matching for "$" and "[[" is deprecated

(1a) (optional) Introduce "$$" operator with partial matching, intended 
solely for interactive use, with QA checks to ensure that it is not used 
in packages

(2) Introduce warnings upon use of partial matching with "$" and "[[", 
with an option() to turn them off.  Initially these warnings are off by 
default, but QA tools turn them on, and package maintainers see the 
warnings.

(3) After a year or two (assuming most packages no longer contain use of 
partial matching), change the default warning about partial matching to 
"on".

(4) After another year, eliminate partial matching with "$" and "[[".

Opinions?

-- Tony Plate

> 
> Anil
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>




More information about the R-devel mailing list