Without a sample data set that fails the first pass and succeeds on the second pass this is a pain to test.
Don't forget to read the posting guide... Reproducible sample code isn't too reproducible without some specified data or autogenerated data. --------------------------------------------------------------------------- Jeff Newmiller The ..... ..... Go Live... DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... Live: OO#.. Dead: OO#.. Playing Research Engineer (Solar/Batteries O.O#. #.O#. with /Software/Embedded Controllers) .OO#. .OO#. rocks...1k --------------------------------------------------------------------------- Sent from my phone. Please excuse my brevity. Spencer S <scheid...@gmail.com> wrote: >Hello all, > >I'm a beginner in R working on a script that will produce a set of >models >(linear, polynomial and logistic) for each location in a dataset. >However, >the self-starting logistic model often fails - if this happens I would >like >to just skip to the next iteration of the loop using tryCatch. > >I've looked at a few examples and read the help file, but didn't >understand >tryCatch in the context of my script. Any help or suggestions (even >telling >me where to insert the tryCatch command) would be much appreciated!! > >Below is the script I am currently working on: > >data<-read.csv(file.choose(),sep=",",header=T) >#File name is cbc.subset > >data$location.code = as.character(data$location.code) > >locs = unique(location.code) > >pdf("mygraphs.pdf",height=8, width=10) >par(mfrow=c(3,4)) > >for(s in 1:length(locs)){ > #To plot data from a particular stateroute: > sub.ECDO<-data[data$location.code == locs[s],] > plot(abund~year, data=sub.ECDO, main=locs[s]) > > #To plot the linear model for the specified location: > lmodel<-lm(abund~year, data=sub.ECDO) > abline(lmodel$coefficients[1],lmodel$coefficients[2],lty=2) > > #To plot the polynomial model for the specified location: > polymodel<-lm(abund~year+I(year^2), data=sub.ECDO) > xv<-seq(min(sub.ECDO$year),max(sub.ECDO$year),0.1) > yv<-predict(polymodel,list(year=xv)) > lines(xv,yv) > > #To plot the logistic model > #####tryCatch > logis<-nls(abund~SSlogis(year,a,b,c),data=sub.ECDO) > yv<-predict(logis,list(year=xv)) > lines(xv,yv) > > #To find which model is the best fit: > if ("logis" %in% ls()) { > AIC.results = AIC(lmodel,polymodel,logis) > } else { > AIC.results = AIC(lmodel,polymodel) > } > > #Add text to plot > text(min(sub.ECDO$year)+2,0.9*max(sub.ECDO$abund),paste("linear = >",AIC.results[1,2],"\npolynomial = ",AIC.results[2,2],"\nlogistic = >",AIC.results[3,2],sep="")) > > rm(logis) > rm(polymodel) > rm(lmodel) > >} > >dev.off() > >Thank you! > >-- >View this message in context: >http://r.789695.n4.nabble.com/Help-with-tryCatch-with-a-for-loop-tp4020475p4020475.html >Sent from the R help mailing list archive at Nabble.com. > >______________________________________________ >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.