[R] Extracting specific arguments from "..."

Hadley Wickham h@w|ckh@m @end|ng |rom gm@||@com
Wed Jan 8 21:50:53 CET 2025


I'd propose an alternative that I think is superior: rely on the semantics
of ... to do the work for you:

f1 <- function(...){
  one <- list(...)[['a']]
  two <- ...elt(match('a', ...names()))
  c(one, two, three(...))
}

three <- function(a, ...) {
  a
}

f1(a = 1, b = 2, c = 3)
#> [1] 1 1 1


On Sun, Jan 5, 2025 at 12:00 PM Bert Gunter <bgunter.4567 using gmail.com> wrote:

> Consider:
>
> f1 <- function(...){
>   one <- list(...)[['a']]
>   two <- ...elt(match('a', ...names()))
>   c(one, two)
> }
> ## Here "..." is an argument list with "a" somewhere in it, but in an
> unknown position.
>
> > f1(b=5, a = 2, c=7)
> [1] 2 2
>
> Which is better for extracting a specific named argument, one<- or
> two<- ?  Or a third alternative that is better than both?
> Comments and critiques welcome.
>
> Cheers,
> Bert
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> https://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>


-- 
http://hadley.nz

	[[alternative HTML version deleted]]



More information about the R-help mailing list