29

我想研究 rcpp 以提高我的一些 R 代码的速度,而不必求助于凌乱的 C++ 代码(我在这方面取得了一些成功,但它看起来像是来自地狱的代码)。

因此,我检查了 Rcpp 提供的文档,以及Dirk Eddelbuettel 网站上提供的文档包。我安装并查看了 RcppExamples,但是(至少从它的文档中)其中大多数都指的是 RcppClassic?。除此之外,我进行了一些谷歌搜索,但这并没有得到看似基本问题的答案。

  • Rcpp 中的索引是从零开始还是从一开始
  • List 同时提供operator()and operator[],但显然不是 operator[[]]。目前尚不清楚哪些[][[]]R中的和相似。
  • Rcpp 中的因素是否有任何支持(似乎没有)?

注意:事实上,我从 Rcpp-introduction.pdf 的第一个示例中找到了一些答案,但这感觉就像运气一样。

另外,我stl的很生疏,所以如果有人可以为我提供一个简单的示例,其中 List 的每个元素都是 (eg) print-ed 带有 stl 样式的循环,那就太好了。

如果有人因为找不到此信息而想称我为白痴:继续努力吧。然后制作我的并指向我需要的文档:-)

作为对 Eddelbuettel 先生和其他 Rcpp 作者的建议(我希望他们中的一些人能读到这篇文章):doxygen 提供的类层次结构等在你已经深入 Rcpp 时非常整洁,但对于初学者(在Rcpp),我更感兴趣的是“这个类中的这个方法就像 R 中的那个函数一样”,而不是“你可以在这个头文件中找到这个运算符的声明”。毕竟,我了解 Rcpp 的目标之一是降低在 R 中使用 C++ 的门槛?注:就我所见所闻,我非常看重Rcpp的实际代码,对它的创造者表示最崇高的敬意。如果缺乏基本文档仅仅是“缺乏资源”的结果,我愿意成为一种资源(例如:在“基本”上工作

4

1 回答 1

21

我不太清楚从哪里开始回答这个问题,但这里有一个快速尝试:

  • 该软件包有一个网站。该网站列出了文档。

  • 包装有八 (8) 个小插图。它们被清楚地列出。它们主要是作为文档阅读的,有些是介绍性的,有些是更高级的。有些(例如单元测试输出)更多的是质量控制计划。

  • 有一个叫做Rcpp-introduction的小插图。我们反复提及它。我们建议您阅读它。现在,这也是一篇经过同行评审和发表的论文,可能会使其更具可信度。

  • 有一个名为Rcpp-FAQ的小插图。第一个问题是“我该如何开始?” 这指向了前面提到的Rcpp-introduction。

  • 有一个专门用于项目的邮件列表,您实际上可以阅读存档。

  • 我们已经进行了多次会谈,提供幻灯片以及 90 分钟的 Google 技术讲座录音。

  • 甚至 StackOverflow 都有一个标签:[rcpp]. 你可以阅读之前的帖子。

  • Rcpp 的 CRAN 页面上清楚地列出了两打以上的软件包,因为它们正在使用它。你可以阅读他们的源代码。

综上所述,不能使用Rcpp代替 C++ ,因此如果您不知道或不理解operator[[]]C++ 中不存在的内容,我们也无法为您提供帮助。这不是魔法仙女,也不是 R-to-C++ 代码编译器。相反,它的重点是使从 R 获取 C++ 代码变得更加容易,并且在某些情况下甚至设法改进 C++ 实践。从本质上讲,它试图成为“超级加法”:R 和 C++ 的组合应该不仅仅是孤立的。

最后,我承认 RcppExamples 包(顺便说一下涵盖了新旧 API)可以使用更多示例。但是,它的源代码提供了从旧(“经典”)到新的和当前 API 的良好移植提示。

但是我们可以自己编写的文档只有这么多。我自己发现上述要点非常详尽。不过,您可能已经磨练了链条中最薄弱的元素部分。那是倒霉。请尝试此处列出的其他一些指针。

于 2011-05-13T13:23:28.817 回答