[R] Weird behaviour function args in ellipses

Duncan Murdoch murdoch.duncan at gmail.com
Fri Dec 11 18:53:45 CET 2015


On 11/12/2015 12:40 PM, Mario José Marques-Azevedo wrote:
> Dears,
>
> I'm having a weird behaviours when setting arguments in functions.
>
> fn <- function(x, st="mean", b=NULL, col.range="black", ...){
>    dots <- list(...)
>    cat("col.range =", col.range, "\n")
>    cat("dots =\n")
>    print(dots)
> }
>
> fn(1, b=2,col="red")
>
> # Output
> col.range = red
> dots =
> list()
>
> Why 'col' arguments are not in ellipses, but setting col.range to 'red'?

See the R Language Definition manual, section 4.3.2.  Partial matching 
is used on arguments that precede ... in the function definition, exact 
matching on arguments that follow it.

Duncan Murdoch
>
> If I change the position of ellipses
>
> fn2 <- function(x, ..., st="mean", b=NULL, col.range="black"){
>    dots <- list(...)
>    cat("col.range =", col.range, "\n")
>    cat("dots =\n")
>    print(dots)
> }
>
> fn2(1, b=2, col="red")
>
> # Output
> col.range = black
> dots =
> $col
> [1] "red"
>
> It works! I'm using R version 3.2.2.
>
> Best regards!
>
> Mario
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.



More information about the R-help mailing list