[R] deparseDots to get names of all arguments?

Duncan Murdoch murdoch.duncan at gmail.com
Wed Feb 21 01:00:19 CET 2018


On 20/02/2018 5:47 PM, Rolf Turner wrote:
> On 21/02/18 11:36, Spencer Graves wrote:
>> Hi, All:
>>
>>
>>         How can I get the names of all the arguments in dots(...)?
>>
>>
>>         I'm able to get the name of the first argument but not the second:
>>
>>
>>
>> deparseDots <- function(...){
>>     deparse(substitute(...))
>> }
>> a <- 1
>> b <- 2
>> deparseDots(a, b)
>> [1] "a"
>>
>>   >        I'd like to get c('a', 'b').
> 
> Does
> 
>       names(list(...))
> 
> do what you want?

No, that does what he asked for, not what he wants :-).  Spencer, you 
want to deparse all of the expressions in ..., not their names.

I think base R doesn't have a way to do this (but I may be wrong).  You 
can do it using some the rlang package.  For example, this seems to work:

deparseDots <- function(...) {
   unname(sapply(rlang::exprs(...), deparse))
}

Duncan Murdoch



More information about the R-help mailing list