【发布时间】:2019-07-23 22:51:57
【问题描述】:
我有一个我想用 uniroot 解决的功能。它适用于固定值。如果我想通过将一个参数输入 lapply 并应用一个向量来更改它,它工作正常。但是当我给它提供多个向量来运行时,我无法让它运行。
现在我正在尝试使用 mapply() 或 map2() 开始工作
这行得通
fdr<-seq(0.01,0.1,0.001)
fstar <- function(k,x) (((1-1/sqrt(x+1)-1+1/sqrt(1+fo))/((x)+(k*to)))-1/(2*(x+1)^(3/2)))
f <- sapply(fdr, function(k) uniroot(fstar, c(0,10000),k=k)$root)
这就是我想做的事
fdr<-seq(0.01,0.1,0.001)
foB<- seq(1.01,1.1,0.001)
fstar <- function(k,fo,x) (((1-1/sqrt(x+1)-1+1/sqrt(1+fo))/((x)+(k*to)))-1/(2*(x+1)^(3/2)))
f <- mapply(fdr,foB, function(k,fo) uniroot(fstar, c(0,10000),k=k,fo=fo)$root)
Error in get(as.character(FUN), mode = "function", envir = envir) :
object 'Bk' of mode 'function' was not found
我希望得到一个向量来吐出 - 包含两个向量的每个元素的根解决方案。因此,当 fdr = 0.01 和 foB = 1.01 等时,第一个输出将是根解。
【问题讨论】: