3

我有一些天真的问题要问:

1)当我想在R中调用C时,我必须编写一些C代码。但有时我必须调用自己用 R 编写的函数,我可以在 C 函数中调用该函数吗?

2)如果1)是可行的,那么如果我使用R编写的函数重复1000次循环,使用C调用这个函数进行循环会加快速度吗?

4

1 回答 1

5

问得好。快速浏览:

  1. 是的你可以。使用 R 提供的基于 C 的 API 可能(和很多事情一样)有点乏味——但是(至少在我们看来)使用我们通过Rcpp放在顶部的 C++ 层要容易得多

  2. 这就是关键点。如果 R 代码是瓶颈,那么当您从 C 或 C++ 调用它时它仍然是瓶颈,因为从哪里调用它并不重要。重要的是它的相对速度。

rcpp-devel 列表(链接在Rcpp 页面)有很多相关的讨论;[rcpp]您还可以在标签下的 SO 上找到很多内容。

于 2012-11-16T02:31:58.893 回答