[Rd] Multiple return values / bug in rpart?

Simon Urbanek simon.urbanek at r-project.org
Tue Aug 13 14:35:49 CEST 2013


On Aug 13, 2013, at 5:27 AM, Barry Rowlingson wrote:

> On Mon, Aug 12, 2013 at 6:06 PM, Justin Talbot <justintalbot at gmail.com> wrote:
>> In the recommended package rpart (version 4.1-1), the file rpartpl.R
>> contains the following line:
>> 
>> return(x = x[!erase], y = y[!erase])
>> 
>> AFAIK, returning multiple values like this is not valid R. Is that
>> correct? I can't seem to make it work in my own code.
> 
> Works for me, returning a list:
> 
>> foo
> function(x){return(x,x*2)}
>> foo(99)
> [[1]]
> [1] 99
> 
> [[2]]
> [1] 198
> 
> But hey, that might just be because I redefined 'return' earlier:
> 
>> return
> function(...){list(...)}
> 

eek.. this is bad:

> (function() { if(TRUE) return("OK"); "BAD!" })()
[1] "BAD!"

Trying to modify the behavior of return() is rather tricky since you have to return from the function that's calling you ...



More information about the R-devel mailing list