R:错误expr没有计算长度为n的对象

时间:2013-06-26 10:22:56

标签: r

我用这种方式创建了两个函数:

 esp<-function(x) x*dexp(x,lambda)

然后:

 esp2<-function(R) integrate(esp,0,R)

我可以绘制第一个,但是当我尝试绘制第二个时,我得到一个错误:

'expr' did not evaluate to an object of length n 

通过一些研究,我必须使用sapply函数或vectorize函数。但首先,我不知道为什么,其次它不起作用。

1 个答案:

答案 0 :(得分:4)

你需要Vectorize因为curve期望它有这样的功能来计算绘图数据。它不起作用,因为integrate输出一个复杂的对象。因此,您需要隔离输出的相关部分:

esp2 <- function(R) integrate(esp,0,R)$value
plot(Vectorize(esp2))