[R] automatic completion of object names

peter dalgaard pdalgd at gmail.com
Fri Jul 6 16:26:29 CEST 2012


On Jul 6, 2012, at 15:36 , knallgrau at gmx.com wrote:

> Hello there,
> 
> I just upgraded to R 2.15 (from R 2.12) on a Windows XP machine and noticed some puzzling behaviour (that in my opinion did not exist in R 2.12).
> 
> It is possible now to call objects without spelling out the full object name. R now seems to use that (unique) object which shares the same beginning of the called object, even though the originally called object might not even exist. 
> 
> This is quite awkwardly described, but perhaps you know what I'm talking about?
> 
> Let's say I'm using the Mroz data supplied with the car package:
> 
> require(car)
> data(Mroz)
> 
> there is no variable called "w" in that dataframe, but calling 
> 
> summary(Mroz$w) #### Mroz$w does not exist
> 
> does not return any error but instead gives the same result as 
> 
> summary(Mroz$wc) ##### exists in Mroz
> 
> 
> I find this behaviour *very* undesirable. Is there any way to switch it off?

It's called partial matching and has been around since the King of Diamonds was a Knave (as the local saying goes). The feature has long since lost the love of its inventors, but it has been considered impossible to remove because of all the usages like chisq.test(M)$obs.

Easiest workaround is to use Mroz[["wc"]], see ?Extract for more info.

-- 
Peter Dalgaard, Professor
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



More information about the R-help mailing list