[R] Sloppy argument checking for named arguments
Gabor Grothendieck
ggrothendieck at myway.com
Thu Jun 3 06:15:41 CEST 2004
It has already been pointed out that partial matching is a feature.
However, if the function uses ... then it will only match arguments
exactly so if you want to write a function in which full matching only
is accepted you can do it by putting in a dummy first argument of
... and then issuing an error messaage if ... matches anything:
f <- function( ..., foo.bar = 0 ) {
stopifnot( length(list(...)) == 0 )
print( foo.bar )
}
R> f( foo.bar = 1 )
[1] 1
R> f( foo = 1 )
Error: length(list(...)) == 0 is not TRUE
Christian Lederer <christianlederer <at> t-online.de> writes:
:
: Dear R Gurus,
:
: i recently noticed that R does sloppy argument checking for named
: arguments, if the argument contains a dot.
: Example:
:
: > f <- function(foo.bar=0) { print(foo.bar) }
: > f(foo=1)
: [1] 1
:
: I guess, this should be considered as a bug.
: Anyway, the consequence is that bugs caused by typing errors
: of this kind may are *very* hard to discover in complex progams.
:
: Christian
:
: ______________________________________________
: R-help <at> stat.math.ethz.ch mailing list
: https://www.stat.math.ethz.ch/mailman/listinfo/r-help
: PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
:
:
More information about the R-help
mailing list