constant <- function(x){1}
integrate(constant,lower=1,upper=10)
这可能不仅仅是荒谬的简单,但任何理由都说明为什么它不起作用?
我应该用不同的方式编写常量函数吗?
答案 0 :(得分:7)
您可以使用Vectorize
函数将非向量化函数转换为integrate
所需的函数类型:
> constant <- function(x){1}
> Vconst <- Vectorize(constant)
> integrate(Vconst,lower=1,upper=10)
9 with absolute error < 1e-13
答案 1 :(得分:2)
来自?integrate
:
R函数采用数字第一个参数并返回相同长度的数字向量。返回非有限元素将产生错误。
您需要返回与x相同长度的向量。尝试:
constant <- function(x){rep(1,length(x))}