如何从nls中获取结果

How to get the results from nls

我的数据如下:

df<-read.table (text=" cup size
12  30.76923077
13  38.46153846
14  53.84615385
15  76.92307692
16  92.30769231
17  100", header=TRUE)

我使用了以下代码得到了结果

y=as.vector(df$cup)
x=as.vector(df$size)
fit <- nls(1/y ~ 1 + exp(-b*(x-c)), start = list(b = 0.01, c = 12), alg = "plinear")

我想分别提取值b、c、.lin 像这样:

b= 0.01552
c= 5.98258
lin= 0.04887

我用过 fit[[2]],但它对我不起作用。

正如@user20650 所建议的那样,coef 是用于从模型中提取值的函数。

如果您引用 source code,您会发现它隐藏在函数 getAllPars()

m 元素中
fit$m$getAllPars()
         b          c       .lin 
0.01552340 5.98262729 0.04887368 

这应该有效:

df<-read.table (text=" cup size
12  30.76923077
13  38.46153846
14  53.84615385
15  76.92307692
16  92.30769231
17  100", header=TRUE)

y=as.vector(df$cup)
x=as.vector(df$size)
fit <- nls(1/y ~ 1 + exp(-b*(x-c)), start = list(b = 0.01, c = 12), alg = "plinear")
myvector <- coef(fit)
b <- myvector[1]
c <- myvector[2]
lin <- myvector[3]