简单的整合

时间:2012-08-23 23:19:26

标签: r

 constant <- function(x){1}

 integrate(constant,lower=1,upper=10)

这可能不仅仅是荒谬的简单,但任何理由都说明为什么它不起作用?

我应该用不同的方式编写常量函数吗?

2 个答案:

答案 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))}