Seth and Stephen, Thanks a lot for the explanation and help! I really appreciate it.
Gang On Aug 6, 2007, at 6:41 PM, Stephen Tucker wrote: > That's because tag <- 1 is evaluated in a local environment (of the > function) > - once function(err) exits, the information is lost. Try R's <<- > operator: > > tag <- 0 > tryCatch(fit.lme <- lme(Beta ~ Trust*Sex*Freq, random = ~1|Subj, > Model), error=function(err) tag <<- 1) On Aug 6, 2007, at 6:55 PM, Seth Falcon wrote: > Gang Chen <[EMAIL PROTECTED]> writes: > >> I wanted something like this: >> >>> tag <- 0; >>> tryCatch(fit.lme <- lme(Beta ~ Trust*Sex*Freq, random = ~1|Subj, >> Model), error=function(err) tag <- 1); >> >> but it seems not working because 'tag' does not get value of 1 when >> error occurs. How can I make it work? > > You can use '<<-' to assign to the parent frame like this: > > tag <- 0 > tryCatch({ > print("inside tryCatch") > print(paste("tag", tag)) > stop("forcing an error") > }, error=function(e) { > print("caught an error") > tag <<- 1 > }) > > But you can also use the return value of tryCatch as a return code if > that is what "tag" is. Like this: > > fail <- TRUE > tag <- tryCatch({ > print("inside tryCatch") > if (fail) > stop("forcing an error") > 0 > }, error=function(e) { > print("caught an error") > 1 > }) > tag > > + seth > > -- > Seth Falcon | Computational Biology | Fred Hutchinson Cancer > Research Center > BioC: http://bioconductor.org/ > Blog: http://userprimary.net/user/ ______________________________________________ R-help@stat.math.ethz.ch 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.