拟合多条Gompertz曲线并跳过R中的错误(nlsList和SSgompertz)

拟合多条Gompertz曲线并跳过R中的错误(nlsList和SSgompertz),r,lm,nls,R,Lm,Nls,我正在尝试使用SSgompertz拟合数百条gompertz形状的曲线。数据集有三列,分别为“x”和“y”值,以及一个编码列,用于将数据分隔为不同的样本:“分组”。稍后,这些参数将用于使用predict()从y轴上的固定点确定所有样本的x(拟合点方法) 在使用以下代码将参数输入predict()之前,我设法将多个多项式拟合到数据中: 参数nlsList已在内部使用try。您的问题似乎是na.action设置(na.fail是默认设置)。使用na.省略: nlsList(y~SSgompertz(

我正在尝试使用SSgompertz拟合数百条gompertz形状的曲线。数据集有三列,分别为“x”和“y”值,以及一个编码列,用于将数据分隔为不同的样本:“分组”。稍后,这些参数将用于使用predict()从y轴上的固定点确定所有样本的x(拟合点方法)

在使用以下代码将参数输入predict()之前,我设法将多个多项式拟合到数据中:


参数
nlsList
已在内部使用
try
。您的问题似乎是
na.action
设置(
na.fail
是默认设置)。使用
na.省略

nlsList(y~SSgompertz(x, Asym, xmid, scal)|GROUPING, data=data, na.action = na.omit)
#Call:
#  Model: y ~ SSgompertz(x, Asym, xmid, scal) | GROUPING 
#   Data: data 
#
#Coefficients:
#       Asym     xmid     scal
#1   618.774 2.031473 0.831752
#643 618.774 2.031473 0.831752

Degrees of freedom: 16 total; 10 residual
Residual standard error: 30.44042

编写一个循环,用
tryCatch
调用
nls
。这不是
tryCatch
的正确用法。研究这一点:顺便说一句。如果您提供了一个示例,我可能会告诉您如何执行此操作。很抱歉之前没有这样做,我现在添加了一些示例数据。是否有方法跳过拟合不良的数据,这些数据会产生错误,例如:“迭代次数超过最大50次”,我相信
nlsList
已经这样做了。提供一个没有的例子。
data<-data.frame(x=c(0,1,2,4,8,16,32,64,0,1,2,4,8,16,32,64,0,1,2,4,8,16,32,64),
                 y=c(70,90,160,250,410,510,610,650,
                     NA,NA,NA,NA,NA,NA,NA,NA,
                     70,90,160,250,410,510,610,650),
                 GROUPING=c(1,1,1,1,1,1,1,1,
                            45,45,45,45,45,45,45,45,643,643,643,643,643,643,643,643))
nlsList(y~SSgompertz(x, Asym, xmid, scal)|GROUPING, data=data, na.action = na.omit)
#Call:
#  Model: y ~ SSgompertz(x, Asym, xmid, scal) | GROUPING 
#   Data: data 
#
#Coefficients:
#       Asym     xmid     scal
#1   618.774 2.031473 0.831752
#643 618.774 2.031473 0.831752

Degrees of freedom: 16 total; 10 residual
Residual standard error: 30.44042