2013-06-23 66 views
1

我想將積分值保存在一個數組中。在下面的程序中,從q = 1到q = 10。但是由於使用非數字部分輸出,而不是能夠做到so.Kindly幫助將積分值保存在一個數組中R

q=10 
integrand<-function(x)(q*x^3) 
integrate(integrand,lower=0,upper=10) 

輸出爲25000絕對錯誤< 2.8E-10

如何刪除非數字的一部分?

+0

解析它並存儲你想要的第一部分。 – duffymo

回答

1

str()是你的朋友:

> intval <- integrate(integrand,lower=0,upper=10) 
> str(intval) 
List of 5 
$ value  : num 25000 
$ abs.error : num 2.78e-10 
$ subdivisions: int 1 
$ message  : chr "OK" 
$ call  : language integrate(f = integrand, lower = 0, upper = 10) 
- attr(*, "class")= chr "integrate" 
> intval$value 
[1] 25000 

然後:

integrand<-function(x,q=10)(q*x^3) 
tmpfun <- function(q) { 
    integrate(integrand,lower=0,upper=10,q=q)$value 
} 
sapply(1:10,tmpfun) 
## [1] 2500 5000 7500 10000 12500 15000 17500 20000 22500 25000 

我希望這是一個簡單的例子,因爲這個特殊的回答更加簡單:(1)綜合分析,並得到( 2)認識到標量倍數可以從積分中取出:1:10*(10^4/4)得到相同的答案。

+0

是的,它的工作!非常感謝! – user2458552