Вызов функции с несколькими аргументами внутри uniroot в R

Я пытаюсь вызвать функцию с несколькими аргументами внутри uniroot, чтобы решить и найти значение х. Код ниже,

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 ответ

Решение

Оберните вашу функцию в другую функцию, которая принимает один аргумент:

uniroot(function(x) threshold(mean1,sigma1,mean2,sigma2, priors1, priors2,x),c(0,5))
Другие вопросы по тегам