如何更有效地计算R中的积分?

如何更有效地计算R中的积分?,r,function,loops,R,Function,Loops,我在R中有一个函数,它运行几乎需要1秒。所以我认为这不是什么沉重的东西。看起来是这样的: DataList <- cons1mpdf(tradedays[i]) tempQ <- DataList[[1]] Qpdf <- function(X) pmax(tempQ(X),0) norINTEG <- function(X) Qpdf(X) / X^(-RRA) a <- integral( norINTEG , DataList[[2]] ,

我在R中有一个函数,它运行几乎需要1秒。所以我认为这不是什么沉重的东西。看起来是这样的:

DataList <- cons1mpdf(tradedays[i])
  tempQ <- DataList[[1]]
  Qpdf <- function(X) pmax(tempQ(X),0)
  norINTEG <- function(X)  Qpdf(X) / X^(-RRA)
a <-  integral( norINTEG ,  DataList[[2]] ,  DataList[[3]] )

  realPDF <- function(X)  norINTEG(X) / a

  zBerkowitz[i] <-  qnorm(  pmax( 0,  integral(realPDF ,  DataList[[2]] ,   head(nextmonth.close[date == tradedays[i]] , 1)    ) ) )

DataList在哪里定义了
integral
<代码>PDF
?你的数据是什么样子的,是正面的,非负面的,都是真实的。。。?请通过列出非基本包(包括示例数据)以及与您的问题相关的任何其他代码来回答此问题。“a”是此处的积分。CONS1MPD除了生成积分边界的最小值和最大值外,还生成一个风险中性PDF函数。这些数据是期权市场数据,所有这些数据都用在cons1mpdf函数中,我所需要的就是这些数据。有可能在这里共享文件以使代码可复制吗?这不完全是我想要的。如果您阅读了我之前提供的链接,您将讨论使问题完全自我支持的首选技术,这意味着示例数据、必需的函数和支持代码都包括在内。这就要求OP做出努力,因为问题通常会被忽略或关闭,因为有很多页不相关的代码,和/或很难理解。因此,您使用的函数名为
integral
,对我来说是不存在的。您的PDF函数是一个我无法复制的黑盒。您的数据未知。你明白吗?是的,我明白了谢谢你的指导。积分函数在“pracma”包中。我认为PDF在这个层面上并不那么重要。因此,只需像普通函数一样使用任何pdf函数。在这种情况下,不需要任何数据。只有PDF文件。如果我能将整个代码与数据共享,我认为这会非常有帮助。它只有10MB。10MB不是问题中要发布的内容,数据链接通常不受欢迎,因为链接会过时,而你的答案——尽管是通知性的——也不会让答案变得容易。祝你好运,阿里。这似乎是一个有趣的问题,但你对这个问题的要求比“模型问题”要多一些。我只是没有时间在试图回答实际问题之前弄清楚所有的意图和参考资料。干杯