如何从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]
我的数据如下:
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]