Dear Mark, I see what you mean. Clearly the problem is with try(), since if you eliminate that, the message disappears.
On the other hand, if you use try( f.inner(), silent=TRUE), the message is also suppressed. Does that help? John > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: November-10-08 8:22 PM > To: [EMAIL PROTECTED]; R-help@r-project.org > Subject: RE: [R] how to stop without error message? > > Hi John > > Using 'on.exit' to reset the "show.error.messages" option should work, but it > doesn't quite... and I'm not sure why. > > It breaks down with, for want of a better phrase, "nested" calls to stop, > inside 'try' statements. For some reason, the inner 'stop' calls *do* lead to > messages, although the outermost one is suppressed. > > test> f.inner <- function() { > + opt.inner <- options( show.error.messages=FALSE) > + on.exit( options( opt.inner)) > + stop( 'leaving f.inner') > + } > test> > test> f.outer <- function() { > + try( f.inner()) > + opt.outer <- options( show.error.messages=FALSE) > + on.exit( options( opt.outer)) > + stop( 'leaving f.outer') > + } > test> f.outer() > Error in f.inner() : leaving f.inner > test> > > bye > Mark > > > > > -- > Mark Bravington > CSIRO Mathematical & Information Sciences > Marine Laboratory > Castray Esplanade > Hobart 7001 > TAS > > ph (+61) 3 6232 5118 > fax (+61) 3 6232 5012 > mob (+61) 438 315 623 > > -----Original Message----- > From: John Fox [mailto:[EMAIL PROTECTED] > Sent: Tuesday, 11 November 2008 10:35 AM > To: Bravington, Mark (CMIS, Hobart); R-help@r-project.org > Subject: RE: [R] how to stop without error message? > > Dear Mark, > > How about something like this? > > > f <- function(x){ > + if (x < 0){ > + opt <- options(show.error.messages=FALSE) > + on.exit(options(opt)) > + stop() > + } > + sqrt(x) > + } > > > > f(2) > [1] 1.414214 > > f(-2) > > > > I hope this helps, > John > > ------------------------------ > John Fox, Professor > Department of Sociology > McMaster University > Hamilton, Ontario, Canada > web: socserv.mcmaster.ca/jfox > > > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > On > > Behalf Of [EMAIL PROTECTED] > > Sent: November-10-08 5:42 PM > > To: R-help@r-project.org > > Cc: [EMAIL PROTECTED] > > Subject: [R] how to stop without error message? > > > > Dear list > > > > Can anyone suggest a simple way to abort execution like stop(...) does, > but > > without issuing an "Error: ..." message? > > > > I don't want to set 'options( show.error.messages=TRUE)' because I want > > normal behaviour to resume after this particular stop. > > > > (Please reply personally as well as to the list, as I'm not subscribed to > R- > > help) > > > > Thanks > > Mark > > > > -- > > Mark Bravington > > CSIRO Mathematical & Information Sciences > > Marine Laboratory > > Castray Esplanade > > Hobart 7001 > > TAS > > > > ph (+61) 3 6232 5118 > > fax (+61) 3 6232 5012 > > mob (+61) 438 315 623 > > > > ______________________________________________ > > 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.