如何在for循环中的每个唯一图上拟合独特的曲线

时间:2015-01-23 00:03:53

标签: r for-loop curve-fitting

我已为我的数据框kleaf.df编写了此代码(见下文),以便将多个变量press_mV的图表与唯一ID

的每个单独的图表结合起来

我需要一些帮助曲线拟合我的情节。当我运行这个代码时,我得到了所有图中相同的拟合曲线(适合第一个图的曲线),我希望每个独特曲线上的每个唯一拟合曲线。

提前感谢任何帮助

f <- function(t,a,b) {a * exp(b * t)}    
par(mfrow = c(5, 8), mar = c(1,1,1,1), srt = 0, oma = c(1,6,5,1))
for (i in unique(kleaf.df$ID))
{
d <- subset(kleaf.df, kleaf.df$ID == i)
plot(c(1:length(d$press_mV)),d$press_mV)
#----tp:turning point. the last maximum value before the values start to decrease
tp <- tail(which( d$press_mV == max(d$press_mV) ),1)
#----set the end points(A,B) to fit the curve to
A <- tp+5
B <- A+20
#----t = time, p = press_mV 
#     n.b:shift by 5 accomadate for the time before attachment
t <- A:B+5
p <- d$press_mV[A:B]
fit <- nls(p ~ f(t,a,b), start = c(a=d$press_mV[A], b=-0.01))
#----draw a curve on plot using the above coefficents
curve(f(x, a=co[1], b=co[2]), add = TRUE, col="green", lwd=2)
}

0 个答案:

没有答案