On 11-09-17 5:27 AM, andrewH wrote:
Dear Folk--
Suppose I have some objects A, B& C, and a function
getDots<- function(...) {args<- list(...) etc.}
If I do a call to getDots(A, B, C) then the variable args will be assigned
to a list which contains the objects to which A, B& C refer, but which will
not (except by happenstance) contain the names A, B, or C. I would like
getDots to return a named list, with the object names being assigned as the
element names in the list.
Is there any way to do this?
Yes, there are two ways. First, you could name the arguments in the
call, e.g.
getDots(A=1, B=123, C=5)
and then args will become a named list. If you want it to happen
internally, it's harder: you need to examine the call that was made to
your function and construct the names from it.
You can do this in a fairly unsatisfactory way as follows:
values <- list(...)
names(values) <- lapply( as.list( substitute( list(...) ) )[-1], deparse)
One problem with this is that it will end up with the names "1", "123",
"5" if you call it as in the example above --- almost certainly not what
the user would want.
To do it compatibly with data.frame(), just copy the code out of that
function. The local variable "vnames" is constructed to hold the column
names, in about 30 lines of complicated code.
As an aside, I do not understand why the list command does not do this by
default, like the data.frame command does. In fact, you can use data.frame
instead of list to get a named argument list, but only if all your objects
are of the same length.
data.frames have to have names, lists don't. Putting those 30 lines of
code into list() would slow things down unnecessarily.
Duncan Murdoch
Thanks in advance for any help you can offer.
andrewH
--
View this message in context:
http://r.789695.n4.nabble.com/Name-the-dots-tp3819947p3819947.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.