[R] Construct a function with argments specified by an R expression
Iris Simmons
|kw@|mmo @end|ng |rom gm@||@com
Sat Oct 25 04:31:53 CEST 2025
I would start by making a list of the desired length, where each element is
the missing argument:
f <- rep(list(quote(expr = )), 2 + length(argnms))
then add names to the list:
names(f) <- c("x", "y", argnms)
and then use formals<-
formals(foo) <- f
Although, I would ask if you're certain that this is actually what you want
to do. It's usually a bad idea to have variable names that you don't know.
I'd to think it'd be better to have the default argument:
a = list()
and supply a list of `a` values instead of several `a` arguments.
On Fri, Oct 24, 2025, 22:23 Rolf Turner <rolfturner using posteo.net> wrote:
>
> I want to build a function (say "buildFn") to *return* a function of the
> form
>
> foo(x,y,a1, ... an, b1, ..., bn)
>
> where the arguments ai and bi are given in the form of a list created
> in R. E.g. I'd like to be able to say
>
> argnms <- c(paste0("a",1:3),paste0("b",1:3"))
> foo <- buildFn(argnms)
>
> with the resulting "foo" having arguments x, y, a1, a2, a3, b1, b2, b3.
>
> I thought I might be able to do this using "formals<-" but I cannot get
> this to work. i could provide more detail of what I've tried, but it's
> probably not worth it.
>
> Can anyone steer me in the right direction? Thanks.
>
> cheers,
>
> Rolf Turner
>
> --
> Honorary Research Fellow
> Department of Statistics
> University of Auckland
> Stats. Dep't. (secretaries) phone:
> +64-9-373-7599 ext. 89622
> Home phone: +64-9-480-4619
>
> ______________________________________________
> 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.
>
[[alternative HTML version deleted]]
More information about the R-help
mailing list