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
I would use two because it does not force the evaluation of the other arguments in the ... list. On Sun, Jan 5, 2025, 13:00 Bert Gunter <bgunter.4567 at 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 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 > https://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]
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 at 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 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 > https://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >-- http://hadley.nz [[alternative HTML version deleted]]