【问题标题】:Getting Started with RInside C++ [closed]RInside C++ 入门 [关闭]
【发布时间】:2013-03-01 01:16:02
【问题描述】:

我成为 R 用户大约 4 年了,在过去的两周里,我一直在开发一个简单的函数包,它可以分析一些数据并以适合我团队其他成员的项目的方式绘制一些图表和主管正在努力,还有一些即将到来的。所以他们现在问我是否可以让它成为一个独立于必须知道 R 的人的可执行文件 - 所以它是一个带有基于文本的菜单或简单 gui 的单个 .exe 文件。

从冬天开始,我一直在慢慢学习 C++,我认为 RInside 是最好的方法;使用 C++ 生成一个以 R 为核心的 .exe,以实现令人惊叹的绘图和图形,但它将包含在我的团队可以使用的可执行文件中。我目前已经涵盖了 C++ 变量、带有 iostream 的基本 I/O、布尔值和控制流、函数、数组、结构和类、重载友元和引用。我查看了 Dirk 的博客,我已经将 R 重新安装到 C:\R\ 并安装了 CodeBlocks 和 MinGW,我一直在学习 C++。我需要关于我应该采取哪些预防措施以及在继续之前我应该​​检查/阅读/了解哪些事情的建议,也许还有一种对新手友好的方式来开始涉足和尝试事情。

谷歌搜索我发现很少有教程或演练的方式与 Rcpp 不同,人们(例如像 Hadley)写了很棒的 wiki 或博客文章,我发现这比跳入更多技术文档更容易一些。

【问题讨论】:

  • 我相信这个问题更适合programmers.stackexchange.com
  • 相反,您应该让您的同事花 10 分钟时间学习如何在 R 命令行中输入函数名称和参数!
  • 您不能将您的应用程序分发为 R 脚本(一个可执行的文本文件,其中包含 R 代码,以 #!/usr/bin/rscript 开头,可以独立运行)?这假定 R 已安装,但对于最终用户而言,它与已编译的可执行文件无法区分。
  • 就目前而言,它是一个 R 包二进制文件,如果使用它的人遇到任何问题或将数据发送给我,请与我联系。但我认为他们要求 .exe 的真正原因是它将结合其他相关项目的一些其他分析(不一定是 R),以形成足够大的东西,使其值得组合成一个 .exe,并且他们希望我的 R 代码成为其中的一部分。就目前而言,我的 R 内容是进入 .exe 的第一件事,所以我被要求尝试对其进行排序。
  • 不是您所要求的,但我使用并取得巨大成功的另一种方法是使用 gWidgets 包在 R 中创建 GUI。它易于学习,并且可以快速创建简单的 GUI。

标签: c++ r rcpp rinside


【解决方案1】:

没有演练或教程——因为有 六个 包含大量示例的示例目录。

查看standard/ 目录中的那些,它应该带您从非常简单到更高级。

这是一个最简单的 hello-world 示例,rinside_sample0.cpp

#include <RInside.h>                    // for the embedded R via RInside

int main(int argc, char *argv[]) {
    RInside R(argc, argv);              // create an embedded R instance 
    R["txt"] = "Hello, world!\n";       // assign a char* (string) to 'txt'
    R.parseEvalQ("cat(txt)");           // eval init string, ignoring returns
    exit(0);
}

只需说“制作 rinside_sample0”(或在 Windows 上为 make -f Makefile.win rinside_sample0)。 (请注意,在 Windows 上,您需要将几个 DLLS 放入您的路径等 pp -- Linux 更容易这样做。_

还可以查看[rinside] 标记中的早期问题。

【讨论】:

  • 谢谢 Dirk,我会玩一下,看看我能做什么 - 我在这台电脑上也有一个 linux 分区,所以如果我在 Windows 上遇到困难,我可以切换。
  • 好主意!许多人在 Windows 上使用它,我不时进行测试,但我确实觉得它更乏味。对于简单的“存在证明”,Linux 应该更容易。请考虑接受/支持答案,因为这就是网站的运作方式......
猜你喜欢
  • 2012-02-20
  • 1970-01-01
  • 1970-01-01
  • 2011-02-28
  • 2023-03-04
  • 2012-08-11
  • 2011-07-25
  • 2012-08-12
  • 2010-09-26
相关资源
最近更新 更多