[R] stop()

Nordlund, Dan (DSHS/RDA) NordlDJ at dshs.wa.gov
Tue Oct 11 20:59:53 CEST 2011


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Dimitris Rizopoulos
> Sent: Tuesday, October 11, 2011 10:43 AM
> To: Doran, Harold
> Cc: r-help at r-project.org
> Subject: Re: [R] stop()
> 
> You could use return(), e.g.,
> 
> myFun <- function (x, max.iter = 5) {
>      for (i in 1:10) {
>          result <- x + i
>          iter <- i
>          if (iter == max.iter) {
>              return(result)
>          }
>      }
>      result
> }
> 
> myFun(10, max.iter = 4)
> 
> 
> I hope it helps.
> 
> Best,
> Dimitris


Or, just use break :

myFun <- function (x, max.iter = 5) {
     for (i in 1:10) {
         result <- x + i
         iter <- i
         if (iter == max.iter) break
     }
     result
}


Hope this is helpful,

Dan

Daniel J. Nordlund
Washington State Department of Social and Health Services
Planning, Performance, and Accountability
Research and Data Analysis Division
Olympia, WA 98504-5204



> 
> 
> On 10/11/2011 7:31 PM, Doran, Harold wrote:
> > Suppose I have a function, such as the toy example below:
> >
> > myFun<- function(x, max.iter = 5) {
> >                 for(i in 1:10){
> >                 result<- x + i
> >                 iter<- i
> >                 if(iter == max.iter) stop('Max reached')
> >                 }
> >                 result
> >                 }
> >
> > I can of course do this:
> > myFun(10, max.iter = 11)
> >
> > However, if I reach the maximum number of iterations before my
> "algorithm" has finished (in my real application there are EM steps for
> a mixed model), I actually want the function to return the value of
> "result" up to that point. Currently using stop(), I would get
> >
> >> myFun(10, max.iter = 4)
> > Error in myFun(10, max.iter = 4) : Max reached
> >
> > But, in this toy case the function should return the value of
> "result" up to iteration 4.
> >
> > Not sure how I can adjust this.
> >
> > Thanks,
> > Harold
> >
> >
> >
> > 	[[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help at 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.
> >
> 
> --
> Dimitris Rizopoulos
> Assistant Professor
> Department of Biostatistics
> Erasmus University Medical Center
> 
> Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
> Tel: +31/(0)10/7043478
> Fax: +31/(0)10/7043014
> Web: http://www.erasmusmc.nl/biostatistiek/
> 
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list