Jak przekazać wektor do integracji funkcji

Chcę zintegrować funkcjęfun_integrate który ma wektorvec jako parametr wejściowy:

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

O ile widzę, problem jest następujący:integrate połączeniafun_integrate dla wektorax że oblicza na podstawieupper ilower. To wektoryzowane wywołanie wydaje się nie działać z innym wektorem przekazywanym jako dodatkowy argument. Chcę tegointegrate połączeniafun_integrate dla każdegox że oblicza wewnętrznie i porównuje ten singielx do wektoravec i jestem pewien, że mój powyższy kod tego nie robi.

Wiem, że mogłem samodzielnie wdrożyć procedurę integracji, tj. Obliczyć węzły międzylower iupper i oceniaj funkcję na każdym węźle oddzielnie. Ale to nie byłoby moim preferowanym rozwiązaniem.

Zauważ też, że sprawdziłemVectorize, ale wydaje się, że dotyczy to innego problemu, mianowicie, że funkcja nie akceptuje wektorax. Mój problem polega na tym, że chcę dodatkowego wektora jako argumentu.

questionAnswers(2)

yourAnswerToTheQuestion