[R] stop()

Doran, Harold
Tue, 11 Oct 2011 17:31:53 -0000

Suppose I have a function, such as the toy example below:

myFun <- function(x, max.iter = 5) {
               for(i in 1:10){
               result <- x + i
               iter <- i
               if(iter == max.iter) stop('Max reached')
               }
               result
               }

I can of course do this:
myFun(10, max.iter = 11)

However, if I reach the maximum number of iterations before my
"algorithm" has finished (in my real application there are EM steps
for a mixed model), I actually want the function to return the value of
"result" up to that point. Currently using stop(), I would get

> myFun(10, max.iter = 4)
Error in myFun(10, max.iter = 4) : Max reached

But, in this toy case the function should return the value of "result"
up to iteration 4.

Not sure how I can adjust this.

Thanks,
Harold



	[[alternative HTML version deleted]]