Using names in function with ellipsis (non standard evaluation?)
On 28/05/2015 1:40 PM, Luca Cerone wrote:
Hi everybody,
this is probably a silly question, but I can't find a way to recognize
the names that are passed
to variables in ellipsis.
For example, say I have a "core" function that receives some extra
parameters through ...
e.g.
f <- function(...) {
params <- c(...)
#dothehardworkhere using "names(params)"
}
and then I want to create a function g where some of the parameters
are set like:
g <- function(x,y) f(x,y)
I figure I probably have to use to substitute in f, but it is not
clear to me how.
Definitely what I need to achieve is that when I call:
g(1,2) then in f params is the vector c(x=1,y=2);
similarly I want to be able to call g(y=2, x=1)
and have params = c(x=1,y=2) in f.
Can you please help me understanding how to do this?
Sorry, I misunderstood your question. I didn't notice that g calls f. You should write g to call f with names on the parameters, i.e. g <- function(x,y) f(x=x, y=y) then f will receive the parameters with names on them. I'd still advise against using c(...), but it will give you the output you want with that input; the problem is if your users do something like g(1:2, 3:4) (which would give c(x1=1, x2=2, y1=3, y2=4)). Duncan Murdoch