我用这种方式创建了两个函数:
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函数。但首先,我不知道为什么,其次它不起作用。
答案 0 :(得分:4)
你需要Vectorize
因为curve
期望它有这样的功能来计算绘图数据。它不起作用,因为integrate
输出一个复杂的对象。因此,您需要隔离输出的相关部分:
esp2 <- function(R) integrate(esp,0,R)$value
plot(Vectorize(esp2))