Rcpp的基本文档

时间:2011-05-13 11:40:16

标签: r rcpp

我想研究一下rcpp来提高我的一些R代码的速度,而不必使用凌乱的C ++代码(我已经取得了一些成功,但它看起来像是来自地狱的代码)。

所以,我检查了Rcpp提供的文档,以及Dirk Eddelbuettel's site提供的文档包。我安装并查看了RcppExamples,但(至少从其文档中)大多数都引用了RcppClassic?。除此之外,我做了一些谷歌搜索,但这并没有导致看起来像基本问题的答案。

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

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

另外,我的stl非常生疏,所以如果有人能给我一个简单的例子,其中List的每个元素都是(例如)print - 带有stl风格的循环,那个会很整洁。

如果有人因为没有找到这些信息而想叫我白痴:继续前进,让你的一天。然后制作我的并指出我需要的文档: - )

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

1 个答案:

答案 0 :(得分:20)

我不知道从哪里开始回答这个问题,但这是一个快速尝试:

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

  • 该套餐有八(8)个小插曲。他们被明确列出。它们主要是作为文档阅读,更多是介绍性的,更高级的。一些(例如单元测试输出)更像是一种质量控制。

  • 有一个名为 Rcpp-introduction 的小插图。我们反复提到它。我们建议你阅读它。现在这也是一个peer-reviewed and published paper,可以使它更具可信度。

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

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

  • 我们已经提供了大量的演讲,幻灯片可用,以及90分钟的Google Tech Talk录音。

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

  • Rcpp在CRAN页面上清楚地列出了二十多个包,因为它使用它。你可以阅读他们的源代码。

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

最后,我确实授予您RcppExamples包 - 它可以覆盖旧的和新的API - 可以使用更多示例。然而,它的sourecs提供了从旧的(“经典”)到新的和当前API的良好移植提示。

但是我们自己写的文件很多。我自己发现上述要点非常详尽。你可能已经磨练了链条中最弱的元素部分。那是运气不好。请尝试一下这里列出的其他一些指示。