2011-02-13 21 views
7

我对R相当陌生,有一件事给我留下了深刻的印象,那就是它的运行速度相当缓慢。有没有优化R的文档?例如,优化Python描述非常好here。在我的特殊情况下,我对优化R的批量作业感兴趣。用于优化R性能的任何文档?

我试过谷歌搜索的答案当然,但它不是很容易谷歌R的信息,因为R是一个非常通用的小搜索模式。

+1

@ c00kiemonster,在优化方面,MATLAB的很多内容也适用于R.它不是一种程序语言,所以试图在程序上做事情是一种挫败感。例如,在R中不惜一切代价避免** for循环超过1000个指数(它们至少有一个,甚至可能比MATLAB慢两个数量级)。使用**应用**功能,因为循环发生在较低水平,因此效率更高。此外,R的内存管理器通常很差,所以也要注意这一点。 – 2011-02-13 06:05:53

+0

@cardinal,好的提示。谢谢 – c00kiemonster 2011-02-13 06:26:51

回答

5

是的,R对搜索词来说有点尴尬,所以请在R中尝试RSiteSearch(“performance”) - 这将在许多R docs源中搜索。

2

“运行速度很慢”非常模糊。有许多技术以最有效的方式使用R,一般规则是“避免循环和向量化” - 但还有更多的如确保对象是预先分配而不是实时调整大小。

这真的取决于你在做什么,所以请更具体。标准文档有很多关于基础知识的提示,而且您的问题并没有真正为别人提供反馈的机会。

当标准R确实受限于您的需求时,您可以直接用C等编译语言编写,或使用高级接口(如Rcpp)。对于超出基本R工具包的其他工具和技术,请参阅CRAN上的“高性能计算”任务视图。

3

一个简单的谷歌搜索'高效的r编程'揭示了以下优秀的资源。第一个资源非常好,因为它提供了比较R中编写任务的不好,最好和最好的方法。第二个资源更通用。

  1. http://perswww.kuleuven.be/~u0044882/Research/slidesR.pdf
  2. http://www.bioconductor.org/help/course-materials/2010/BioC2010/EfficientRProgramming.pdf

,如果你正在寻找优化您的R代码里面的更具体的方面,更清楚地说明这一点,我相信你会发现这里的专家!