On 13/11/2007, at 8:27 AM, Horacio Castellini wrote: > Hi all, I'd like fit this function: > > G(t)=A*1/(1+t/B)*1/sqrt(1+t/C) > > where A, B and C are fitting constants that one like search. I have > got a fcs<-(t,G(t)) value table in a data frame. > > Any one can help me? Tahnks Horacio.
I ***thought*** that nls would solve your problem in a trice. But I tried a toy example before replying to you, and it messed up mightily: foo <- function(t,ccc){ ccc[1]*1/(1+t/ccc[2])*1/sqrt(1+1/ccc[3]) } ttt <- seq(1,10,length=100) yyy <- foo(ttt,c(5,3,2)) set.seed(42) dat.test <- data.frame(t=ttt,y=yyy+rnorm(100,0,0.1)) with(dat.test,plot(t,y)) with(dat.test,lines(t,foo(t,c(5,3,2)))) # Looks cool. fit.test <- nls(y~A*1/(1+t/B)*1/sqrt(1+t/C),start=list (A=5,b=3,C=2),data=dat.test) # Gives error; no idea what the implications are. The error message: Error in `[[<-.data.frame`(`*tmp*`, var, value = c(0.70934153524875, 0.761288405463172, : replacement has 65 rows, data has 100 In addition: Warning message: In t/B : longer object length is not a multiple of shorter object length I don't think I have *ever* had a good experience with nls(); it is always pretty flaky. (Well, maybe it worked for me once ..., can't remember for sure. :-) ) cheers, Rolf Turner ###################################################################### Attention:\ This e-mail message is privileged and confid...{{dropped:9}} ______________________________________________ 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.