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) } } 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 <jda...@usgs.gov> wrote: > -------------------------------------- > 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 > > r-help-boun...@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-boun...@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 >> >> dataset<-head(data,i) >> 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@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.