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.