我在使用multiroot
时遇到了问题。我无法找出问题所在,但是当我将它与文档进行比较时,语法和我实现的方式看起来是正确的。请建议。
我的代码如下:
n <- 128
tn <- 28712
sumTc <- 784321
sumT <- 42382
model <- function(b,c){
c( 1/b -(tn^c)/(exp(b*(tn^c))-1), 1/c -(b*(tn^c))/(exp(b*(t^c))-1)+sum(log(tVec)/n))
}
multiroot(model, start=c(0.00004,1))
这给了我一个错误,即Error in f(x, ...) : argument "c" is missing, with no default
。
答案 0 :(得分:0)
您需要使用向量作为函数的参数:
model <- function(x) {
c(
1/x[1] -(tn^x[2])/(exp(x[1]*(tn^x[2]))-1) - sumTc/n, 1/x[2] -(x[1]*(tn^x[2]))/(exp(x[1]*(tn^x[2]))-1)+sum(log(tVec)/n) +(x[1]*sum((tVec^x[2])*log(tVec))/n)
)
}
因此,b
和c
现在位于x[1]
和x[2]
的向量中。