Cómo pasar el vector para integrar la función.

Quiero integrar una funciónfun_integrate que tiene un vectorvec como un 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

Por lo que puedo ver, el problema es el siguiente:integrate llamadasfun_integrate para un vector dex que calcula en base aupper ylower. Esta llamada vectorizada parece no funcionar con otro vector que se pasa como un argumento adicional. Lo que quiero es queintegrate llamadasfun_integrate para cadax que computa internamente y compara ese solox al vectorvec y estoy bastante seguro de que mi código anterior no hace eso.

Sé que podría implementar una rutina de integración yo mismo, es decir, calcular nodos entrelower yupper y evaluar la función en cada nodo por separado. Pero esa no sería mi solución preferida.

También tenga en cuenta que he comprobadoVectorize, pero esto parece aplicarse a un problema diferente, a saber, que la función no acepta un vector parax. Mi problema es que quiero un vector adicional como argumento.

Respuestas a la pregunta(2)

Su respuesta a la pregunta