我想集成一个fun_integrate
以向量vec
作为输入参数的函数:
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
据我所知,问题如下:integrate
调用它基于and计算fun_integrate
的向量。这个向量化调用似乎不适用于作为附加参数传递的另一个向量。我想要的是调用它在内部计算的每一个,并将那个单一的与向量进行比较,我很确定我上面的代码不会那样做。x
upper
lower
integrate
fun_integrate
x
x
vec
我知道我可以自己实现一个集成例程,即计算和之间的节点lower
并upper
分别评估每个节点上的函数。但这不是我的首选解决方案。
另请注意,我检查了Vectorize
,但这似乎适用于另一个问题,即该函数不接受x
. 我的问题是我想要一个额外的向量作为参数。