[R] Help with iteration using while loop

Steve Lianoglou mailinglist.honeypot at gmail.com
Fri Jun 4 22:54:13 CEST 2010


Hi Subodh,

Minor note: please keep replies on list so everyone benefits from
answers/questions.

Now:


On Fri, Jun 4, 2010 at 2:49 PM, Subodh Acharya <shoebodh at gmail.com> wrote:
> Thanks a lot Steve,
> It worked. I appreciate. But I have another question, may be thats trivial.
> Say, it doesn't converge at itermax. I need to display error message saying
> "values don't converge at at itermax". Is there another statement that
> accompanies while for this?

Perhaps you can use "warning(...)". You can check whether (or not)
your  Fpt - Fpi is > tolerance after you loop. If it is, you know your
loop terminated because you hit itermax, and not because your algo
converged:
...
...
iter <- 0
while (((Fpt - Fpi) > tolerance) && (iter < itermax)) {
  Fpi = Fpt
  Fpt = K*Time + M*S*log(1+ Fpi/(M*S))
  Fp0 = Fpt
  iter <- iter + 1
}

if (Fpt - Fpi > tolerance) {
  warning("Algorithm reached itermax and did not converge")
}

...

-- 
Steve Lianoglou
Graduate Student: Computational Systems Biology
 | Memorial Sloan-Kettering Cancer Center
 | Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact



More information about the R-help mailing list