[R] Howto Restart A Function with Try-Error Catch

Gundala Viswanath gundalav at gmail.com
Mon Jul 21 15:12:19 CEST 2008


Hi all,

I have a function - let's call it "myfunction". This function is based
on some random
number generator. Now, once in a while the function will break/crash depending
on the random number it generate inside the function.

To avoid the problem, what I intend to do is the following:

1. Catch the try-error using class.
2.  Redo the function if it returns "try-error"
3.  Otherwise keep the output of the function.

I'm not sure how to create the above construct.
The code I have below doesn't work:

__BEGIN__

     myfunction <- function(the_x) {
        # do something
        a = list(output1=val1, output2 = val2)
        a
     }

       out <- try(suppressWarnings(myfunction(x)),silent=T)

        if (class(out) == "try-error") {
          #this clause doesn't seem to "redo"
          out <- myfunction(X)
        }
        else {
         ll <- out$output1
        }

__END__


- Gundala Viswanath
Jakarta - Indonesia



More information about the R-help mailing list