On 05/03/2012 09:24, Mark Heckmann wrote:
I noticed that the argument names after the dots argument are not partially 
matched.

foo<- function(one, two, ...){
   one + two
}
foo(o=1, t=2)
[1] 3

foo<- function(one, ..., two){
    one + two
}

foo(o=1, t=2)
Fehler in one + two : 'two' fehlt


Can someone explain me the reason for this behavior?

It is documented in the 'R Language Definition', Venables & Ripley 'S Programming' and perhaps elsewhere. It is a useful feature that is not used often enough.

Reason: how else could you pass an argument 't' through ... ? People do get caught by this with things like lapply(fn, X=X), so where ... is involved it is always best to name exactly all arguments. (It is more efficient and easier to read if you do it anyway, which is why R CMD check nowadays NOTEs any uses of partial matching in a package it is testing.)

THX
Mark

––––––––––––––––––––––––––––––––––––
Mark Heckmann
Blog: www.markheckmann.de
R-Blog: http://ryouready.wordpress.com

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


--
Brian D. Ripley,                  rip...@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-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to