Carl,

When I try Vincent's function in my R GUI, it works, and the argument names are available as strings:


 f <- function (...)
+ {
+ l <- list(...) # Put the arguments in a (named) list
+ for (i in seq(along=l))
+ {
+ cat("Argument name:", names(l)[i], "Value:", l[[i]], "
+ \n")
+ }
+ }

 f(x=3,y=2)
Argument name: x Value: 3

Argument name: y Value: 2


However, you do have to supply values along with the arguments:

 x<-4
 f(x,y=2)
Argument name:  Value: 4

Argument name: y Value: 2


By the way, this is not a Mac issue. It has to do with environments and how arguments are passed.

list(...) has names only for those arguments that are supplied as named arguments, and in
     > f(x,y=2)
the second argument is named but the first is not. Well, that is, I think I'm using proper terminology.


-Don


At 6:14 PM -0400 5/14/08, Carl Witthoft wrote:
Hi,
I've been trying to figure out if there's a way to return the actual names of the arguments passed to a function which uses ellipsis.

There's an example in Vincent Zoonekynd's <[EMAIL PROTECTED]> manual that looks like this:

f <- function (...)
{
l <- list(...) # Put the arguments in a (named) list
for (i in seq(along=l))
{
cat("Argument name:", names(l)[i], "Value:", l[[i]], "
\n")
}
}


I don't know exactly what he thought would happen (or what happens from the command line?) but from the Mac Aqua GUI, names(l) evaluates to NULL, or possibly the 'names' attribute of the first element of the first argument passed to the function, if such exists. And in fact 'l' contains the values of all elements of the arguments to f.

So, is there any way to have the function 'f' "know" what the names are of the arguments passed to it? That is, if I type


 f(foo,bar)

I would like to be able to have the strings 'foo' and 'bar' available somehow.

Any advice or comments greatly appreciated.

Carl

_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac


--
---------------------------------
Don MacQueen
Lawrence Livermore National Laboratory
Livermore, CA, USA
925-423-1062
[EMAIL PROTECTED]

_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to