[R] Looping until a solution is found

David Winsemius dwinsemius at comcast.net
Sat May 30 15:52:38 CEST 2009

On May 30, 2009, at 9:36 AM, Uwe Ligges wrote:
> John Poulsen wrote:
>> Hello,
>> I am using maximum likelihood to find the best parameters for a  
>> model.  This involves sometimes tweaking the starting values to  
>> find a solution that converges.
>> I would like to automate the process so that when the optimizer  
>> runs into an error it tweaks one of the parameters slightly, tries  
>> the fit again, and then continues this until a solution if found.
>> I have been using try() to test if a fit will work (see below), but  
>> how do I run a loop that says continue until class(m1) is not "try  
>> error"?
>>  m1<-mlefun(startvals, data=data)
>> if(class(m1)=="try-error"){startvals<- 
>> list 
>> (alpha=10,beta=1,loggamma=log(5),logk=log(exp(unlist(startvals[4])) 
>> +0.2))                  mlefun(starvals, data)}
> m1 <- mlefun(starvals, data=data)
> while(class(m1) == "try-error"){
>    startvals <- list(alpha=10, beta=1, loggamma=log(5),
>                      logk=log(exp(unlist(startvals[4]))+0.2))
>    m1 <- mlefun(starvals, data=data)
> }

So this implicitly assumes that try() is wrapped around the code  
inside mlefun?

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

More information about the R-help mailing list