2013-06-26 68 views
3

創建這樣兩種功能與R:R:錯誤EXPR沒有評價長度爲n的一個目的

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功能,或矢量化功能。但首先,我不知道爲什麼,其次它不起作用。

回答

4

需要,因爲curve預計這樣的爲它計算繪圖數據功能Vectorize它。它不工作,因爲integrate輸出一個複雜的對象。因此,你需要將輸出的相關部分隔離:

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

它可以用在$值好,但我不知道到底它的目的。 – Saroupille

+1

@Saroupille'integration'返回的不僅僅是計算的積分;它還會返回錯誤的估計值以及任何診斷消息(如果失敗)。所有這些都包含在一個列表中。 '$ value'只提取積分的值。 –

+0

好的,謝謝! – Saroupille

相關問題