Como passar vetor para integrar a função

Eu quero integrar uma funçãofun_integrate que tem um vetorvec como um parâmetro de entrada:

fun_integrate <- function(x, vec) { 
  y <- sum(x > vec)
  dnorm(x) + y
}

#Works like a charm
fun_integrate(0, rnorm(100))

integrate(fun_integrate, upper = 3, lower = -3, vec = rnorm(100))
300.9973 with absolute error < 9.3e-07
Warning message:
  In x > vec :
  longer object length is not a multiple of shorter object length

Tanto quanto eu posso ver, o problema é o seguinte:integrate chamadasfun_integrate para um vetor dex que calcula com base emupper elower. Esta chamada vetorizada parece não funcionar com outro vetor sendo passado como um argumento adicional. O que eu quero é queintegrate chamadasfun_integrate para cadax que calcula internamente e compara esse singlex para o vetorvec e tenho certeza que meu código acima não faz isso.

Eu sei que eu poderia implementar uma rotina de integração, ou seja, calcular nós entrelower eupper e avaliar a função em cada nó separadamente. Mas essa não seria a minha solução preferida.

Observe também que eu verifiqueiVectorize, mas isso parece se aplicar a um problema diferente, ou seja, que a função não aceita um vetor parax. Meu problema é que eu quero um vetor adicional como argumento.

questionAnswers(2)

yourAnswerToTheQuestion