【发布时间】:2012-08-21 15:36:19
【问题描述】:
我想集成一个函数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 调用 fun_integrate 以获得基于 upper 和 lower 计算的 x 向量。这个向量化调用似乎不适用于作为附加参数传递的另一个向量。我想要的是integrate 为每个x 调用fun_integrate,它在内部计算并将单个x 与向量vec 进行比较,我很确定我上面的代码不会那样做。
我知道我可以自己实现一个集成例程,即计算 lower 和 upper 之间的节点并分别评估每个节点上的函数。但这不是我的首选解决方案。
还要注意我检查了Vectorize,但这似乎适用于另一个问题,即该函数不接受x 的向量。我的问题是我想要一个额外的向量作为参数。
【问题讨论】:
标签: r