假设我想要集成一些涉及一些其他用户定义函数的和和产品的函数.让我们举一个非常简单的例子,它给出了同样的错误.
integrate(f = sin + cos, lower=0, upper=1)
Run Code Online (Sandbox Code Playgroud)
这会产生"sin + cos中的错误:二元运算符的非数字参数",我认为这样说只是将函数添加到一起而不传递某种参数是没有意义的.所以我有点卡在这里.这个线程构成了我认为是一个更复杂的问题的解决方案,可以在这里应用,但在这种情况下似乎很长时间这么简单的任务.我真的很惊讶我无法在帮助手册中找到函数的函数参数,所以我认为我没有使用正确的术语.
只需编写自己的函数:
> integrate(f = function(x) sin(x) + cos(x), lower=0, upper=1)
1.301169 with absolute error < 1.4e-14
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我使用了匿名函数,但这不是必需的.关键是编写一个函数来表示要集成的任何函数.在这种情况下,函数应该采用向量输入并添加每个元素的sin和cos.
同样,我们可以做到:
foo <- function(x){
sin(x) + cos(x)
}
integrate(f = foo, lower=0, upper=1)
Run Code Online (Sandbox Code Playgroud)