[R] Weird behaviour function args in ellipses

David Winsemius dwinsemius at comcast.net
Fri Dec 11 18:55:53 CET 2015


> On Dec 11, 2015, at 9:40 AM, Mario José Marques-Azevedo <mariojmaaz at gmail.com> 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

Argument matching is done with `pmatch`. So "col" is a partial match to "col.range". 

See ?match.arg


> dots =
> list()
> 
> Why 'col' arguments are not in ellipses, but setting col.range to 'red'?
> 
> 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.

It's been that way 'forever'.

> 
> 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.

David Winsemius
Alameda, CA, USA



More information about the R-help mailing list