在R中uniroot内调用一个带有多个参数的函数

时间:2014-02-18 01:46:30

标签: r

我试图在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。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

将您的函数包含在另一个带有一个参数的函数中:

uniroot(function(x) threshold(mean1,sigma1,mean2,sigma2, priors1, priors2,x),c(0,5))