# Re: [R] tryCatch - Continuing for/next loop after error

From: Jonathan P Daily <jdaily_at_usgs.gov>
Date: Thu, 10 Mar 2011 10:49:18 -0500

Wow, I had a major brain fart there. The function after error was supposed to accept an argument, and next won't do anything there because inside the function there is no loop. Also, the first argument of tryCatch is an expression, so do the assignment there. Corrections inline below:

Jonathan P. Daily
Technician - USGS Leetown Science Center 11649 Leetown Road
Kearneysville WV, 25430
(304) 724-4480
"Is the room still a room when its empty? Does the room,  the thing itself have purpose? Or do we, what's the word... imbue it."
• Jubal Early, Firefly

Nipesh Bajaj <bajaj141003_at_gmail.com> wrote on 03/10/2011 10:21:38 AM:

> [image removed]
>
> Re: [R] tryCatch - Continuing for/next loop after error
>
> Nipesh Bajaj
>
> to:
>
> Jonathan P Daily
>
> 03/10/2011 10:21 AM
>
> Cc:
>
> r-help
>
> Hi Jonathan, I was also trying to understand this tryCatch function on
> my own problem. Here is mine:
>
> fn1 <- function(x) {
> if(as.integer(x) == 5) {
> stop("stop")
> }
> return(x+5)
> }
> res <- matrix(NA, 5, 7)
> for(i in 1:5) {
> for(j in 1:7) {
> res[i,j] <- tryCatch(fn1(j), error = function() next)
> }
> }

for(i in 1:5) { for(j in 1:7) {

tryCatch(res[i,j] <- fn1(j), error = function(x) x) } }

>
> I was expecting while completion of these loops, the 5th column of
> 'res' will have NA values. However I got some error:
>
> Error in value[[3L]](cond) : unused argument(s) (cond)
>
> What is the actual problem here?
>
> Thanks,
>
>
> On Thu, Mar 10, 2011 at 7:19 PM, Jonathan P Daily <jdaily_at_usgs.gov>
wrote:
> > --------------------------------------
> > Jonathan P. Daily
> > Technician - USGS Leetown Science Center
> > Kearneysville WV, 25430
> > (304) 724-4480
> > "Is the room still a room when its empty? Does the room,
> > the thing itself have purpose? Or do we, what's the word... imbue
it."
> > - Jubal Early, Firefly
> >
> > r-help-bounces_at_r-project.org wrote on 03/10/2011 03:51:15 AM:
> >
> >> [image removed]
> >>
> >> [R] tryCatch - Continuing for/next loop after error
> >>
> >> Costas
> >>
> >> to:
> >>
> >> r-help
> >>
> >> 03/10/2011 03:53 AM
> >>
> >> Sent by:
> >>
> >> r-help-bounces_at_r-project.org
> >>
> >> Please respond to costas.vorlow
> >>
> >> Dear all,
> >>
> >> I am not sure I understand fully the functionality of "tryCatch" and
> >> "try" commands and how these are used to continue a for/next loop if
an
> >> error occurs within the loop.
> >>
> >> Can somebody point me to material (or share some code) with more
> >> extensive examples than the ones in the help/FAQ pages?
> >>
> >> Do explain my problem in more detail:
> >>
> >> for (i in 100:1000)
> >> {
> >> ## do some other stuff
> >>
> >> tryCatch(estimatemodel(dataset))
> >
> > if estimatemodel returns an error (i.e. via a call to stop()), then
this
> > should break out of the loop:
> >
> > tryCatch(estimatemodel(dataset), error = function() break)
> >
> > if you want to skip to the next iteration, use:
> > tryCatch(estimatemodel(dataset), error = function() next)
> >
> >>
> >> }
> >>
> >> My for/next loop reads in data (increasing the dataset by one point
at
> >> every loop run) and then estimates a model. When the problem is
> >> computationally singular, the loop exits. I want to continue the loop
> >> and register an "error" estimation value for that step. However when
I
> >> use use the try tryCatch(estimatemodel(data)) (where estimatemodel()
is
> >> a wrapper function calling the model estimation and optimization
> >> routines), the problem still persists.
> >>
> >> Is this the correct way to use tryCatch (or try) or should these go
> >> inside the actual code bits (i.e., in a more low level fashion) that
> >> conduct the optimization and model estimation?
> >>
> >> Apologies if this is not clear enough.
> >>
> >> Best,
> >> Costas
> >>
> >> ______________________________________________
> >> R-help_at_r-project.org mailing list
> >> https://stat.ethz.ch/mailman/listinfo/r-help
> > http://www.R-project.org/posting-guide.html
> >> and provide commented, minimal, self-contained, reproducible code.
> >
> > ______________________________________________
> > R-help_at_r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help