Bill et. al: 1. This is new to me. Thanks.
2. As I read the man page, this is not guaranteed to work if the model fitting function does not contain sufficient interrupts. Is that correct? -- Bert On Thu, Mar 15, 2012 at 4:14 PM, William Dunlap <wdun...@tibco.com> wrote: > There is a setTimeLimit function in base. It could be encapsulated into > the following to limit the time spent on an expression: > > timeOut <- function (expr, ...) { > on.exit(setTimeLimit()) > setTimeLimit(...) > expr > } > > E.g., with the following slow way to compute Euler's phi > f <- function(n) sum(sapply(seq_len(n), function(i)1/i)) - log(n) > I get > > timeOut(f(1e5), elapsed=1) > [1] 0.5772207 > > timeOut(f(1e6), elapsed=1) > Error in FUN(1:1000000[[711624L]], ...) : reached elapsed time limit > Use try() or tryCatch() to check for the error. E.g., > > sapply(1:7, function(n)tryCatch(timeOut(f(10^n), elapsed=1), > error=function(e)-1)) > [1] 0.6263832 0.5822073 0.5777156 0.5772657 0.5772207 -1.0000000 > -1.0000000 > You could look at 'e' in the error handler to see if it is a time out problem. > > Bill Dunlap > Spotfire, TIBCO Software > wdunlap tibco.com > >> -----Original Message----- >> From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On >> Behalf >> Of Bert Gunter >> Sent: Thursday, March 15, 2012 3:05 PM >> To: Ramiro Barrantes >> Cc: r-help@r-project.org >> Subject: Re: [R] Timer on a function >> >> On Thu, Mar 15, 2012 at 2:24 PM, Ramiro Barrantes >> <ram...@precisionbioassay.com> wrote: >> > Hello, >> > >> > I have a program that consists of a loop fitting a function over many >> models. Sometimes the fitting on a particular model takes minutes to >> converge. Is there >> a way that I can limit the amount of time that R spends on a given model: >> >> AFAIK, no -- this is an OS level issue. >> >> Of course, most iterative fitting procedures have controls for the >> number of iterations, convergence criteria, etc. , but there is no >> awareness of timing except when the OS is interrogated, e.g. by >> ?proc.time or ?system.time . Such calls would have to be built into >> the fitting function or OS level services would have to be invoked to >> run the R process with timing limitations built in. See e.g. ?Rscript >> for one possible approach. >> >> Corrections or clever tricks to get around these perceived limitations >> welcomed, of course. >> >> -- Bert >> >> Cheers, >> Bert >> > >> > say if my line is: >> > >> > fittingFunction( func, model.1) >> > >> > can I have some function: >> > >> > stopIfUnderTime( fittingFunction( func, model.1) , 5 ) >> > >> > where stopIfUnderTime will return the result if it finishes under 5 >> > seconds, or NA >> otherwise. >> > >> > Is there anything like this? (just looked through the web but did not >> > find anything) >> > >> > Thanks, >> > Ramiro >> > >> > >> > >> > [[alternative HTML version deleted]] >> > >> > ______________________________________________ >> > 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. >> >> >> >> -- >> >> Bert Gunter >> Genentech Nonclinical Biostatistics >> >> Internal Contact Info: >> Phone: 467-7374 >> Website: >> http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb- >> biostatistics/pdb-ncb-home.htm >> >> ______________________________________________ >> 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. -- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm ______________________________________________ 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.