我试图在uniroot内调用一个带有多个参数的函数来解决并找到x的值。代码如下,
mean1 = 0
mean2 = 1
sigma1 = 0.5
sigma2 = 0.5
priors1 = 0.6
priors2 = 0.1
threshold = function(mu1, sigma1, mu2, sigma2, prior1, prior2, x) {
(dnorm(x,mu1,sigma1) * prior1 - dnorm(x, mu2, sigma2) * prior2)
}
uniroot(threshold(mean1,sigma1,mean2,sigma2, priors1, priors2), c(0,5))
但是对uniroot的调用失败了,因为函数也希望传递x。我该如何解决这个问题?
答案 0 :(得分:3)
将您的函数包含在另一个带有一个参数的函数中:
uniroot(function(x) threshold(mean1,sigma1,mean2,sigma2, priors1, priors2,x),c(0,5))