Skip to content
Back to formatted view

Raw Message

Message-ID: <428C6F6C.7030807@stats.uwo.ca>
Date: 2005-05-19T12:49:40Z
From: Duncan Murdoch
Subject: Getting ... without evaluating it?
In-Reply-To: <Pine.LNX.4.61.0505191104180.6887@gannet.stats>

Prof Brian Ripley wrote:
> On Thu, 19 May 2005, Duncan Murdoch wrote:
> 
> 
>>I'd like a function to get an unevaluated copy of its argument list, 
>>including ... .  That is, I'd like
>>
>>f <- function(...) {
>> args <- <what goes here??>
>> args
>>}
>>
>>when called as
>>
>>f(a = 1+1, b = foo)
>>
>>to return something like list(a = quote(1+1), b = quote(foo)).  If I use args 
>><- list(...) then it tries to evaluate the arguments and dies (because foo 
>>doesn't exist).  If I use args <- substitute(...) then it gives just 1+1, it 
>>doesn't keep the names or give the whole list.
> 
> 
>>f <- function(...) as.list(match.call())[-1]
>>f(a = 1+1, b = foo)
> 
> $a
> 1 + 1
> 
> $b
> foo
> 
> (which is what list(a = quote(1+1), b = quote(foo)) prints as).

Thanks!

Duncan Murdoch